먼저 초기 문자열을 선언하고 길이를 계산하여 deleteSubstr(str,length) 함수에 전달하겠습니다.
string str = "01010110011"; int length = str.length(); cout <<"Count of substring deletion"<< deleteSubstr(str, length);
deleteSubstr(string str, int length) 함수 내부에서 for 루프는 I가 길이보다 작아질 때까지 실행되고 각각 0과 1이 만날 때 count_0 및 count_1 변수를 증가시킵니다. 그런 다음 함수는 count_0 및 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); }
예시
"01" 또는 "10"을 제거하기 위해 이진 문자열에서 "01" 또는 "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; }
출력
위의 코드는 다음 출력을 생성합니다 -
Count of substring deletion 5