Khai báo chuỗi ban đầu, tính độ dài và truyền vào hàm deleteSubstr(str, length).
string str = "01010110011"; int length = str.length(); cout << "Số lần xóa chuỗi con: " << deleteSubstr(str, length);
Trong hàm deleteSubstr, vòng lặp đếm số ký tự '0' và '1'. Kết quả trả về là giá trị nhỏ hơn giữa hai bộ đếm.
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);
}
Ví dụ hoàn chỉnh
#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 << "Số lần xóa chuỗi con: " << deleteSubstr(str, length);
return 0;
}
Kết quả
Số lần xóa chuỗi con: 5