2010年第二题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jingmin52296358al/article/details/86062642

2.归并两个有序字符串,要求输出不能有重复字符(数据结构上做过N遍的Merge函数)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void getMerge(char *s1,char *s2,char *c)
{
    int i=0,j=0,k=0;
    while(i<strlen(s1)&&j<strlen(s2))
    {
        if(s1[i]<s2[j])
        {
            c[k++]=s1[i++];
        }
        else if(s2[j]<s1[i])
        {
            c[k++]=s2[j++];
        }
        else if(s1[i]==s2[j])
        {
            c[k++]=s1[i];
            i++;j++;
        }
    }
    while(i<strlen(s1))
        c[k++]=s1[i++];
    while(j<strlen(s2))
        c[k++]=s2[j++];
    c[k]='\0';
}

int main()
{
    char s1[200],s2[200];
    char c[400];
    scanf("%s",s1);
    scanf("%s",s2);
    getMerge(s1,s2,c);
    printf("%s",c);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/jingmin52296358al/article/details/86062642