题意:已知2个字符串s,t。要求输出一个字符串p,其距离和s,t均相等。距离定义: 若s[1]=1,p[1]=0 距离+=abs(1-0)。
思路:确定s,t中,不同字符的个数,如果是偶数才可以进行,再对半分
错误点: strlen不要放在for循环里啊。 死循环tmd!
//2018/7/24 回头看,没强制转换成int
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1e5+50;
char s1[maxn],s2[maxn];
int main(void)
{
scanf("%s",s1+1);
scanf("%s",s2+1);
int cnt=0;
int len=strlen(s1+1);
for(int i=1; i<=len; i++)
{
if(s1[i]!=s2[i]) cnt++;
}
//cout << "cnt=" << cnt << endl;
if(cnt%2==1)
{
printf("impossible\n");
return 0;
}
else
{
int a=0;
for(int i=1; i<=len ; i++)
{
if(s1[i]!=s2[i])
{
a++;
if(a<=cnt/2)
printf("%c",s1[i]);
else
printf("%c",s2[i]);
}
else
printf("%c",s1[i]);
}
}
puts("");
}