Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Xóa chuỗi con "01" hoặc "10" trong chuỗi nhị phân C++


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