题目:
描述:
给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。
输入:
输入一个字符串,长度小于100000。输出输出第一个仅出现一次的字符,若没有则输出no。
样例输入 abcabd
自己想了好久都做不出,只好去查了一下答案;
1 #include<stdio.h> 2 #include<string.h> 3 int main() 4 { 5 int t,i,j,flag,len; 6 char a[100000]; 7 gets(a); 8 len=strlen(a); 9 for(i=0;i<len-1;i++) 10 { 11 flag=1; 12 if(a[i]=='@') continue; //对于相同的,省略; 13 for(j=i+1;j<len;j++) //j=j+1;可以不用循环i之前的字母。 14 if(a[i]==a[j]) 15 { 16 a[j]='@'; //相同字母做标记。 17 flag=0; //不输出a[i]; 18 } 19 if(flag==1) 20 { 21 putchar(a[i]); 22 break; 23 } 24 if(i==len-1) printf("no"); 25 26 } 27 return 0; 28 }
看是看的懂,但要自己写的话就有点难了;