题解:CF1971B Different String

· · 题解

题目大意:

一共有 t 个字符串,对于每一个字符串,找到一个与这个字符串不同的字符串 s,使得重新排列字符串 s 中的字符后可以变回原来的字符串。

思路:

可以枚举字符串中的每一个字符,如果这个字符与上一个字符不相同,那就可以把这两个字符调换组成新的字符串。

代码:

#include<bits/stdc++.h>
using namespace std;
void slove(){
    string s;
    cin>>s;
    int l = s.size();
    for (int i = 1;i < l;i++){
        if (s[i] != s[i - 1]){
            cout<<"YES\n";
            swap(s[i],s[i - 1]);
            cout<<s<<'\n';
            return ;
        }
    }
    cout<<"NO\n";
}

signed main(){
    int t;
    cin>>t;
    while (t--){
        slove();
    }
    return 0;
}