ACGO # 挑战赛 15th T2题解
2025-02-23 22:39:55
发布于:江苏
30阅读
0回复
0点赞
这道题目数据量不大,所以直接暴力查找即可。这里,我们由题目条件可以注意到,能被通过的替换条件就是两组斜对角的相临字符分别相同,即S1[i]=S2[i+1]且S2[i]=S1[i+1]。
满足条件后别忘了将一个字符串这俩字符调换一下位置,不然后面的遍历会重复用之前的字符,这样就爆了(替换S1.S2均可)
满分AC代码:
#include <bits/stdc++.h>
using namespace std;
string s1,s2;
int main()
{
    cin >> s1 >> s2;
    int len = s1.size();
    for(int i = 0;i < len-1;i++)
    {
        if(s1[i]!=s2[i])
        {
            if(s1[i] != s2[i+1] || s1[i] != s2[i+1])
            {
                cout << "No";
                return 0;
            }
            else
                swap(s2[i+1],s2[i]);
        }
        
    }
    if(s1[len-1] != s2[len-1] && s1[len-2] == s2[len-2])
    {
        cout << "No";
        return 0;
    }
    cout << "Yes";
    return 0;
}
这里空空如也




有帮助,赞一个