문자열 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