AcWing 4967. 翻转
原题链接
中等
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
void solve(){
string s,t;
cin>>t>>s;
int n=s.size();
if(s[0]!=t[0]||s[n-1]!=t[n-1]){//头和尾不相等必定无解
cout<<"-1\n";
return ;
}
int cnt=0;
for(int i=1;i<n-1;i++){
if(s[i]!=t[i]&&s[i]!=s[i+1]&&s[i]!=s[i-1]){//s[i]!=t[i]判断是否能翻转,符合条件就翻转;
s[i]=t[i];
cnt++;
}
}
//cout<<s<<"\n";
if(s==t){ //翻转后判断是否相等
cout<<cnt<<"\n";
}
else cout<<-1<<"\n";
}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int t;
cin>>t;
while(t--){
solve();
}
}