Đầu tiên chúng ta hãy khai báo chuỗi ban đầu và tính độ dài của nó rồi chuyển chúng vào hàm deleteSubstr (str, length).
string str = "01010110011"; int length = str.length(); cout <<"Count of substring deletion"<< deleteSubstr(str, length);
Bên trong của hàm deleteSubstr (string str, int length), vòng lặp for chạy cho đến khi tôi nhỏ hơn chiều dài và tăng biến count_0 và count_1 khi gặp 0 và 1 tương ứng. Sau đó, hàm trả về giá trị nhỏ nhất của count_0 và 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); }
Ví dụ
Hãy để chúng tôi xem cách triển khai sau đây về việc xóa “01” hoặc “10” trong chuỗi nhị phân để làm cho nó không còn “01” hoặc “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; }
Đầu ra
Đoạn mã trên sẽ tạo ra kết quả sau -
Count of substring deletion 5