Codeforces Round #303 (Div. 2) B - Equidistant String【strlen放在for的危害】-惨痛教训

题意:已知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("");
}
全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务