ให้เราประกาศสตริงเริ่มต้นของเราก่อนแล้วคำนวณความยาวและส่งต่อไปที่ฟังก์ชัน deleteSubstr(str,length)
string str = "01010110011"; int length = str.length(); cout <<"Count of substring deletion"<< deleteSubstr(str, length);
ภายในฟังก์ชัน deleteSubstr(string str, int length) ลูป for จะทำงานจนกว่า I จะน้อยกว่าความยาว และเพิ่มค่าตัวแปร count_0 และ count_1 เมื่อพบ 0 และ 1 ตามลำดับ จากนั้นฟังก์ชันจะส่งกลับค่าต่ำสุดของ count_0 และ count_1
int deleteSubstr(string str, int length){ int count_0 = 0, count_1 = 0; for (int i = 0; i < length; i++) { if (str[i] == '0') count_0++; else count_1++; } return min(count_0, count_1); }
ตัวอย่าง
ให้เราดูการดำเนินการต่อไปนี้ของการลบ “01” หรือ “10” ในสตริงไบนารีเพื่อให้เป็นอิสระจาก “01” หรือ “10”−
#include <iostream> using namespace std; int deleteSubstr(string str, int length){ int count_0 = 0, count_1 = 0; for (int i = 0; i < length; i++) { if (str[i] == '0') count_0++; else count_1++; } return min(count_0, count_1); } int main(){ string str = "01010110011"; int length = str.length(); cout <<"Count of substring deletion "<< deleteSubstr(str, length); return 0; }
ผลลัพธ์
รหัสข้างต้นจะสร้างผลลัพธ์ต่อไปนี้ -
Count of substring deletion 5