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

좋은 문자열을 얻기 위해 제거할 문자 수를 계산하는 C++ 프로그램

<시간/>

문자열 S가 있다고 가정합니다. S는 S에 'x'와 'a'라는 두 가지 유형의 문자를 포함합니다. 좋은 문자열이 되도록 S에서 몇 개의 문자를 제거한 후 남아 있는 가장 긴 문자열을 계산해야 합니다. 문자열 길이의 절반 이상이 문자 '''로 채워져 있으면 문자열이 좋습니다.

따라서 입력이 S ="xaxxxxa"와 같으면 출력은 3이 됩니다. 왜냐하면 4개의 'x'를 제거하면 문자열은 "xaa"가 되고 길이가 3인 좋은 문자열이기 때문입니다.

단계

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

x := 2 * count the number of 'a' in S
n := size of S
return minimum of n and x

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

#include <bits/stdc++.h>
using namespace std;

int solve(string S) {
   int x = 2 * count(S.begin(), S.end(), 'a') - 1;
   int n = S.size();
   return min(n, x);
}
int main() {
   string S = "xaxxxxa";
   cout << solve(S) << endl;
}

입력

"xaxxxxa"

출력

3