题目来源:A - Equal Hamming Distances
题目大意:给你 两个字符串S和T(长度都为n),请求出字典序最小的字符串U,要求它与S不同的字符数量等于与T的。若无解,输出-1。
题目思路:
输出-1的情况:S与T不同的字符数量之差是奇数。
对于有解的情况,同时遍历S和T的每一位,若相同,U的该位置写0;否则尽可能写0。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
cin.tie(0);
ios::sync_with_stdio(0);
int n,cnts=0,cntt; cin>>n;
string s,t; cin>>s>>t;
for(int i=0;i<n;i++) if(s[i]!=t[i]) cnts++;
if(cnts%2){
putchar('-');
putchar('1');
}else{
cnts/=2;
cntt=cnts;
for(int i=0;i<n;i++){
if(s[i]==t[i]) putchar('0');
else{
if(s[i]=='0'){
if(cnts){
putchar('0');
cnts--;
}else putchar('1');
}else{
if(cntt){
putchar('0');
cntt--;
}else putchar('1');
}
}
}
}
return 0;
}
//ACplease!!!