思路:
找到两个串对应不相同的位置,可以知道,要是想变成一样的,得两个不同的位置同时往中间变换得到,花费是之间的距离
可以知道这样的话,相邻的两个位置得到一个花费;
#include<bits/stdc++.h> using namespace std; const int maxn = 1e3 + 7; char s[maxn], t[maxn]; int main() { scanf("%s", s); scanf("%s", t); int len = strlen(s); vector<int> vec; for(int i = 0; i < len; ++i) { if(s[i]!=t[i]) vec.push_back(i); } if(vec.size() % 2 == 1) cout << -1 << endl; else { int ans = 0; for(int i = 1; i < vec.size(); i += 2) { ans += (vec[i]-vec[i-1]); } cout << ans; } return 0; }