noi-7804-找第一个只出现一次的字符

来源:互联网 发布:java修改全局变量 编辑:程序博客网 时间:2024/05/16 18:32

02:找第一个只出现一次的字符


总时间限制: 
1000ms 
内存限制: 
65536kB
描述

给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。

输入
一个字符串,长度小于100000。
输出
输出第一个仅出现一次的字符,若没有则输出no。
样例输入
abcabd
样例输出
c
//noi_7804#include<iostream>#include<cstdio>using namespace std;int main(){char c;int a[2][30]={0},i=0,min=100005,mark=50;while(scanf("%c",&c)&&c!='\n'){a[0][c-'a']++;a[1][c-'a']=i++;}for(int i=0;i<26;i++){if(a[0][i]==1){if(a[1][i]<=min) {min=a[1][i];mark=i;}}}if(mark==50) cout<<"no";else cout<<char('a'+mark);return 0;}

这道题要求用字符串解决,但是我没有使用字符串。如果简单二次遍历的话只要记住哪些是只出现一次,这些中哪个是第一个出现的。
0 0