Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++ 프로그램에서 "01" 또는 "10"을 없애기 위해 이진 문자열에서 "01" 또는 "10"을 삭제합니다.

<시간/>

이 자습서에서는 쌍(01 및 10)에서 이진 문자열을 해제하기 위해 총 쌍(01 또는 10) 수를 찾는 프로그램을 작성할 것입니다. 예를 들어 보겠습니다.

입력 − 101010001

출력 - 4

위의 예에서 쌍(01 및 10)에서 이진 문자열을 해제하려면 총 4개의 쌍을 삭제해야 합니다.

모든 쌍을 삭제한 후 결과 문자열은 0입니다. .

모든 01을 삭제해야 합니다. 및 10 이진 문자열에서 쌍. 따라서 삭제할 총 쌍 수는 최소 count(1)개입니다. 및 카운트(0) .

문제를 해결하는 단계를 살펴보겠습니다.

  • 바이너리 문자열을 초기화합니다.

  • 0과 1의 수를 찾으십시오.

  • 0과 1에서 최소값을 인쇄합니다.

예시

코드를 봅시다.

#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;
}

출력

위의 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.

4

결론

튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.