解题思路:
注意事项:
参考代码:
#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语言代码)浏览:1163 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:566 |
简单的a+b (C语言代码)浏览:457 |
Tom数 (C语言代码)浏览:517 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:569 |
Tom数 (C语言代码)浏览:598 |
母牛的故事 (java语言代码)浏览:896 |
Manchester- 求之N内的素数浏览:1510 |
A+B for Input-Output Practice (IV) (C++代码)浏览:543 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:528 |