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