02:找第一个只出现一次的字符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了02:找第一个只出现一次的字符相关的知识,希望对你有一定的参考价值。
02:找第一个只出现一次的字符
- 总时间限制: 2017-07-1218:36:28
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。
- 输入
- 一个字符串,长度小于100000。
- 输出
- 输出第一个仅出现一次的字符,若没有则输出no。
- 样例输入
-
abcabd
- 样例输出
-
c
错误答案:9分#include<stdio.h> #include<iostream> #include<algorithm> #include<string.h> #include<math.h> using namespace std; char a[30][2]; string w; int main() { int i,n,k; char j=‘a‘; for(i=1;i<=26;i++) { a[i][1]=j; j++; } cin>>w; n=w.length(); for(i=0;i<n;i++) { for(k=1;k<=26;k++) { if(a[k][1]==w[i]) {a[k][2]++;continue; } } } int f=0; for(i=1;i<=26;i++) { if(a[i][2]==1){f=1;cout<<a[i][1]<<endl;break;} } if(f==0) cout<<"no"<<endl; return 0; }
正确答案:#include<iostream> #include<cstring> #include<cstdio> using namespace std; int main() { char a[100001]; int b,c[100001]={0}; gets(a); b=strlen(a); for(int i=0;i<b;i++) { for(int j=0;j<b;j++) { if(a[i]!=a[j])c[i]++; } if(c[i]==b-1) { cout<<a[i];return 0; } } cout<<"no"; return 0; }
以上是关于02:找第一个只出现一次的字符的主要内容,如果未能解决你的问题,请参考以下文章