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;
}
posted @ 2025-09-08 18:45  FormulaOne  阅读(12)  评论(0)    收藏  举报