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

来源:互联网 发布:淘宝里的名字怎么改 编辑:程序博客网 时间:2024/05/16 14:15

原题链接

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

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

输入
一个字符串,长度小于100000。
输出
输出第一个仅出现一次的字符,若没有则输出no。
样例输入
abcabd
样例输出
c

源码

#include <iostream>#include <cstring> using namespace std;int main(){char str[100000],a[26]={0};// 数组a记录每个字母出现的次数cin >> str;long len = strlen(str); // 求字符串长度// 1.建立哈希表 for (int i=0;i<len;i++){a[str[i]-97]++; } // 2.第二次扫描str,找到第一个哈希值为1 for (int i=0;i<len;i++){// i是下标,str[i]是字符,a里记录的是字符 if (a[str[i]-97] == 1){ cout << str[i];return 0; }} cout << "no";return 0; }