竞赛
考级
这道题目数据量不大,所以直接暴力查找即可。这里,我们由题目条件可以注意到,能被通过的替换条件就是两组斜对角的相临字符分别相同,即S1[i]=S2[i+1]且S2[i]=S1[i+1]。 满足条件后别忘了将一个字符串这俩字符调换一下位置,不然后面的遍历会重复用之前的字符,这样就爆了(替换S1.S2均可) 满分AC代码:
xiabo
由于只能操作一次,所以顶多交换相邻两位。所以要么是 ai=bia_i=b_iai =bi ,要么是 ai=bi+1a_i=b_{i+1}ai =bi+1 且 ai+1=bia_{i+1}=b_iai+1 =bi ,其他情况输出 No 就可以了。 AC Code:
亚洲卷王 AK IOI
#include <iostream> using namespace std; int main(){ string s,b; cin>>s; cin>>b; for(int i=0;i<s.size();i++){ if(s[i]!=b[i]){ swap(s[i],s[i+1]); break; } } if(s==b){ cout<<"Yes"; }else{ cout<<"No"; } return 0; }
徐书睿
CEGO.tyx