ในบทช่วยสอนนี้ เราจะแก้ไขปัญหาต่อไปนี้
ให้สตริงที่มีเฉพาะอักขระ 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
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น