#include <bits/stdc++.h>
using namespace std;
int d;
int main()
{
cin>>d;
while(d--){
string s,t;
cin>>t;
cin>>s;
bool flag=1;
int res=0,len=s.size();
if(s[0]!=t[0]||s[len-1]!=t[len-1]){
cout<<"-1"<<endl;
continue;
}
for(int i=1;i<len-1;i++){
if(s[i]!=t[i]){
if(s[i-1]!=s[i]&&s[i+1]!=s[i]){
res++;
s[i]^=1;//为什么??
}else flag=0;
}
}
if(flag==1) cout<<res<<endl;
else cout<<"-1"<<endl;
}
return 0;
}
注意第 22 行代码不可写成:
s[i]=(s[i]==1)?0:1;
否则不通过。
(我也不知道为什么这样不行,有佬可以解答一下吗)
可以写成
s[i]^=1;
或 s[i]=t[i];