官方题解
2026-02-23 00:26:41
发布于:江苏
19阅读
0回复
0点赞
T2 午枫的卡片交换
题目大意
给定两个字符串 ,问能否交换 的相邻两个字符最多一次,使得 。
解题思路
枚举模拟每个相邻位置的交换,判断是否存在一个位置使得 即可。
参考代码
#include <bits/stdc++.h>
using namespace std;
int main(){
string a,b;cin>>a>>b;
int n=a.size();
a=' '+a;
b=' '+b;
int cnt=0;
for(int i=1;i<n;i++){
if(a[i]==b[i]) continue;
if(a[i]!=b[i] && a[i+1]!=b[i+1]){
if(a[i]==b[i+1] && a[i+1]==b[i]){
cnt++;
i++;
}
else{
cout<<"No"<<endl;
return 0;
}
}
else{
cout<<"No"<<endl;
return 0;
}
}
if(cnt<=1) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
return 0;
}
这里空空如也







有帮助,赞一个