解题思路:
注意事项:
参考代码:
#include<bits/stdc++.h> using namespace std; #define ll long long void solve(){ string s1,s2; cin>>s1>>s2; ll ans=0; //s2->s1 // 先输入的是目标串 //头或者尾不同的时候必然无解 if(s1[0]!=s2[0]||s1.back()!=s2.back()){ cout<<-1<<endl; return; } //判断中间部分 for(int i=1;i<s2.size()-1;i++){ //不一样的再判断 if(s1[i]!=s2[i]) { //可替换的话 if(s2[i-1]==s2[i+1]&&s2[i]!=s2[i-1]) { ans++; s2[i]=s1[i]; } //不可替换就是无解 else{ cout<<-1<<endl; return ; } } } cout<<ans<<endl; } int main(){ ll t; cin>>t; while(t--){ solve(); } return 0; }
0.0分
4 人评分
C语言训练-尼科彻斯定理 (C语言代码)。。。内含证明定理浏览:2069 |
汽水瓶 (C语言代码)浏览:705 |
C语言程序设计教程(第三版)课后习题9.1 (Java代码)浏览:471 |
剪刀石头布 (C语言代码)不知道怎么直接在scanf中用枚举变量浏览:1316 |
printf基础练习2 (C语言代码)浏览:943 |
用筛法求之N内的素数。 (C语言代码)浏览:1260 |
C语言考试练习题_排列 (C语言代码)浏览:725 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:601 |
WU-格式化数据输出 (C++代码)浏览:1212 |
哥德巴赫曾猜测 (C语言代码)浏览:2350 |