ABC394C
模拟样例可以发现,操作本质上是将形如若干个 W 加上一个 A 的字符串变为同样长度的一个 A 加上若干个 C 的字符串。于是按照这个规则找到并替换这样的字符串即可。
时间复杂度 \(O(n)\)。
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
string s;
int n;
cin >> s;
n = s.size();
for( int i = 0 ; i < n ; )
{
if( s[i] != 'W' )
{
cout << s[i];
i ++;
continue;
}
int j = i;
while( j < n && s[j] == 'W' ) j ++;
j --;
if( j == n - 1 )
{
for( int k = i ; k <= j ; k ++ )
cout << "W";
i = j + 1;
}
else if( s[j + 1] != 'A' )
{
for( int k = i ; k <= j ; k ++ )
cout << "W";
i = j + 1;
}
else
{
cout << "A";
for( int k = i + 1 ; k <= j + 1 ; k ++ )
cout << "C";
i = j + 2;
}
}
return 0;
}

浙公网安备 33010602011771号