Computer >> Máy Tính >  >> Lập trình >> C ++

Xóa “01” hoặc “10” trong chuỗi nhị phân để không có “01” hoặc “10” trong Chương trình C ++

Trong hướng dẫn này, chúng ta sẽ viết một chương trình tìm tổng số cặp (01 hoặc 10) để giải phóng chuỗi nhị phân khỏi các cặp (01 và 10). Hãy xem một ví dụ.

Đầu vào - 101010001

Đầu ra - 4

Trong ví dụ trên, chúng ta phải xóa tổng cộng 4 cặp để giải phóng chuỗi nhị phân khỏi các cặp (01 và 10).

Chuỗi kết quả sau khi xóa tất cả các cặp là 0 .

Chúng tôi phải xóa tất cả 01 10 các cặp từ chuỗi nhị phân. Vì vậy, tổng số cặp bị xóa tối thiểu là số lượng (1) số lượng (0) .

Hãy xem các bước để giải quyết vấn đề.

  • Khởi tạo chuỗi nhị phân.

  • Tìm số 0 và số đếm.

  • In số tối thiểu từ số 0 và số đếm.

Ví dụ

Hãy xem mã.

#include <bits/stdc++.h>
using namespace std;
int findMinimumNumberOfDeletions(string str, int len) {
   int zeroes_count = 0, ones_count = 0;
   // counting zeroes and ones
   for (int i = 0; i < len; i++) {
      if (str[i] == '0') {
         zeroes_count++;
      }
      else {
         ones_count++;
      }
   }
   return min(zeroes_count, ones_count);
}
int main() {
   string str = "101010001";
   int len = str.length();
   cout << findMinimumNumberOfDeletions(str, len) << endl;
   return 0;
}

Đầu ra

Nếu bạn thực hiện chương trình trên, bạn sẽ nhận được kết quả sau.

4

Kết luận

Nếu bạn có bất kỳ câu hỏi nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.