题解
2026-03-06 23:07:44
发布于:辽宁
4阅读
0回复
0点赞
总共分三步:累加,存入和条件是否满足
设一个累加和 ,使每次 i 和 i 不相同时,
设一个临时数组 和一个临时变量 , ,每次 i 和 i 不相同时, b1 ,
根据题意,我们可以知道通过最多一次交换相邻的两个卡片,使 的每一个字母与 的都相同
所以,当满足以下两个条件之一就输出Yes,否则输出No
所以,AC代码奉上:
#include<bits/stdc++.h>
using namespace std;
string s,t;
int main()
{
cin>>s>>t;
int sum=0,b[101]={0},b1=0;
for(int i=0;i<s.size();i++)
{
if(s[i]!=t[i])
{
sum++;
b[b1]=i;
b1++;
}
}
if((sum==2&&b[1]-b[0]==1&&s[b[0]]==t[b[1]]&&s[b[1]]==t[b[0]])||sum==0) cout<<"Yes";
else cout<<"No";
}
看到这了,给我点个赞呗
这里空空如也







有帮助,赞一个