이 자습서에서는 쌍(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
결론
튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.