เราได้รับสตริงที่สามารถมี "ab" และงานคือการคำนวณจำนวนการดำเนินการที่จำเป็นในการลบหรือลบ "ab" ออกจากสตริง ดังนั้น งานของเราคือตรวจสอบก่อนว่าสตริงมี "ab" หรือไม่ ถ้าใช่ จากนั้นเราต้องทำให้สตริง "ab" ฟรี
ป้อนข้อมูล − string str ="อบาบา"
ผลผลิต − จำนวนการดำเนินการเพื่อสร้างสตริงไบนารี “ab” ฟรีคือ − 4
คำอธิบาย ดังที่เราเห็นในรูปแบบสตริง "ab" เกิดขึ้นสองครั้ง ดังนั้นเราจะแทนที่ "ab" ด้วย "bba" ดังนั้นจำนวนการดำเนินการคือ 1 และตอนนี้สตริงคือ bbaabaa อีกครั้ง เราจะแทนที่ "ab" ด้วย "bba" ดังนั้นจำนวนการดำเนินการคือ 2 และตอนนี้สตริงคือ bbbbaaa เรากำลังมี "ab" อีกหนึ่งตัว ดังนั้นจำนวนการดำเนินการคือ 3 และตอนนี้สตริงคือ bbbbaaa ขณะที่เราแทนที่ "ab" ที่ตรวจสอบด้วย "bba" ต่อไป สตริงจะกลายเป็น "ab" ฟรี
ป้อนข้อมูล − str ="ป๊า"
ผลผลิต − จำนวนการดำเนินการเพื่อสร้างสตริงไบนารี “ab” ฟรีคือ − 1
คำอธิบาย อย่างที่เราเห็นในรูปแบบสตริง “ab” เกิดขึ้นครั้งเดียว ดังนั้นเราจะแทนที่ “ab” ด้วย “bba” ดังนั้นจำนวนการดำเนินการคือ 1 และตอนนี้สตริงคือ bbaaa ตอนนี้สตริงว่าง "ab" และนับเป็น 1
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
-
ป้อนสตริงและคำนวณความยาวของสตริงและส่งข้อมูลไปยังฟังก์ชันเพื่อการประมวลผลต่อไป
-
ประกาศจำนวนตัวแปรชั่วคราวเพื่อจัดเก็บการดำเนินการที่จำเป็นในการทำให้สตริง “ab” ว่าง
-
สร้างอาร์เรย์อักขระที่มีความยาวสตริงขนาด + 1
-
เก็บอักขระของสตริงในอาร์เรย์โดยใช้เมธอด strcpy()
-
เริ่มวนรอบ FOR จาก 0 จนถึงความยาวของสตริง
-
ภายในลูป ให้ตรวจสอบ IF arr[length - i - 1] ='a' จากนั้นตั้งค่า count เป็น count + 0 และตั้งค่าตัวแปรทั้งหมดเป็นผลรวม * 2
-
มิฉะนั้น ให้เพิ่มจำนวนรวมเป็น 1
-
คืนจำนวน
-
พิมพ์ผลลัพธ์
ตัวอย่าง
#include<bits/stdc++.h>
using namespace std;
int operations_ab_free(string str, int len){
int count = 0;
char arr[length + 1];
strcpy(arr, str.c_str());
int total = 0;
for (int i = 0; i < len; i++){
if (arr[len - i - 1] == 'a'){
count = (count + total);
total = (total * 2);
}
else{
total++;
}
}
return count;
}
int main(){
string str = "ababaa";
int length = str.length();
cout<<"Count of operations to make a binary string “ab” free are: "<<operations_ab_free(str,
length)<<endl;
return 0;
} ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
Count of operations to make a binary string “ab” free are: 4