看不懂一定要提问,我看到就会回的
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
// 解题思路:
/* 需要统计某个元素是否出现过,以及是否出现一次-用哈希表
(哈希表本质:将其他数据类型映射为索引数字,以达到统计某元素出现次数的作用)
-因为小写字母字符存放的assic码值连续,且只有26个,即映射的数组索引数量很小,
故用数组作为哈希结构*/
string unique(int hash[],string s){
for (const char &c:s)
if(hash[c - 'a'] == 1)
return string(1,c); // 将char转化成string
return "no";
}
int main(){
string s;
cin >> s;
int hash[26];
memset(hash,0,sizeof(hash)); // memset(首地址,初始化的值,想初始化的总字节数)
for (const char &c:s)
hash[c - 'a'] ++; // 将字符串映射到哈希表去,哈希表的元素代表字母出现过的次数
cout << unique(hash,s);
return 0;
}