ในบทช่วยสอนนี้ เราจะแก้ปัญหาดังต่อไปนี้
กำหนดสตริงที่ประกอบด้วยตัวอักษร 'a' และ 'b' เท่านั้น ภารกิจของเราคือลบสตริงย่อย ab ออกจากสตริง และพิมพ์สตริงที่เหลืออยู่
แนวคิดในการแก้ปัญหานี้มีความเรียบง่ายมาก ทุกสตริงที่ประกอบด้วย a และ b เท่านั้นจะหดตัวเหลือเพียง a หรือ b เท่านั้นในที่สุด
ลองดูขั้นตอนในการแก้ปัญหา
กำหนดค่าเริ่มต้นให้กับสตริง
กำหนดตัวนับสองตัวสำหรับ a และ b
วนลูปผ่านสตริงที่กำหนด
นับจำนวน a และ b
หาค่าสูงสุดจากความถี่ของ a และ b
พิมพ์ความแตกต่างระหว่างสองค่า
ตัวอย่าง
ลองดูโค้ด
#include <bits/stdc++.h>
using namespace std;
string getTheUpdatedString(string str) {
int n = str.length();
int a_count = 0, b_count = 0;
for (int i = 0; i < n; i++) {
if (str[i] == 'a') {
a_count++;
} else {
b_count++;
}
}
string updated_string = "";
if (a_count > b_count) {
for (int i = 0; i < a_count - b_count; i++) {
updated_string += "a";
}
} else {
for (int i = 0; i < b_count - a_count; i++) {
updated_string += "b";
}
}
return updated_string;
}
int main() {
string str = "ababababaaa";
cout << getTheUpdatedString(str) << endl;
}
ผลลัพธ์
หากคุณรันโค้ดข้างต้น คุณจะได้ผลลัพธ์ดังนี้
aaa
สรุป
หากคุณมีข้อสงสัยใดๆ ในบทช่วยสอนนี้ โปรดระบุในส่วนความคิดเห็น