AC日记——找第一个只出现一次的字符 openjudge 1.7 02
02:找第一个只出现一次的字符
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。
- 输入
- 一个字符串,长度小于100000。
- 输出
- 输出第一个仅出现一次的字符,若没有则输出no。
- 样例输入
-
abcabd
- 样例输出
-
c
思路:
大模拟,不解释;
来,上代码:
#include<cstdio> #include<string> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int ans=0,num[200],has=0; char word[100005],zmu[200]; bool if_did[200]; int main() { gets(word); int now=0; while(word[now]<='z'&&word[now]>='a') { if(!if_did[word[now]]) { if_did[word[now]]=true; zmu[++has]=word[now]; } num[word[now]]++; now++; } bool if_zheng=true; for(int i=1;i<=has;i++) { if(num[zmu[i]]!=1) continue; if_zheng=false; printf("%c\n",zmu[i]); break; } if(if_zheng) printf("no\n"); return 0; }