串的基本操作一(串)

串的基本操作一(串)

时间: 1ms        内存:64M

描述:

任意输入一行字符串,检索重复出现的字符。将原字符串中的重复字符删除后输出,同时输出有哪些字符是重复的。

输入:

输出:

示例输入:

ads_fagaerididfhdus_afiew

示例输出:

ads_fgerihuw

ads_fei

提示:

参考答案(内存最优[1092]):

#include<stdio.h>
#include<string.h>
int main()
{
    char a[200],b[200];
    int c[200]={0};
    scanf("%s",a);
    int i,j,k=0,flag;
    for(i=0;a[i]!='\0';i++)
    {
        flag=0;
        if(c[i]==1)
            continue;
        for(j=i+1;a[j]!='\0';j++)
        {
            if(a[i]==a[j])
            {
                c[j]=1;
                flag=1;
            }
        }
        if(flag==1)
        {
            b[k]=a[i];
            k++;
        }
    }
    for(i=0;a[i]!='\0';i++)
        if(c[i]==0)
        printf("%c",a[i]);
    printf("\n\n");
    for(i=0;i<k;i++)
        printf("%c",b[i]);
    return 0;
}

参考答案(时间最优[0]):

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

int rem[260];
char str[1000];
int main()
{
	int i,len;
	gets(str);
	len=strlen(str);
    memset(rem,0,sizeof(rem));
	for(i=0;i<len;i++)
	{
		if(rem[str[i]]==0) {printf("%c",str[i]);rem[str[i]]++;}
		 else rem[str[i]]++;
	}
	printf("\n\n");
	for(i=0;i<len;i++)
	{
		if(rem[str[i]]>1) {printf("%c",str[i]);rem[str[i]]=0;}
	}
	printf("\n");
    return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注