1. 题目来源
链接:找出字符串中第一个只出现一次的字符
来源:牛客网
2. 题目说明
找出字符串中第一个只出现一次的字符
输入描述:
输入一个非空字符串
输出描述:
输出第一个只出现一次的字符,如果不存在输出-1
示例:
输入:
asdfasdfo
输出
o
3. 题目解析
采用哈希的思想,用一个数组的每一个位置表示对应的位置。对应的字符位置存放字符出现的次数。统计完之后,遍历输入字符,遇到第一个只出现一次的字符就停止。
4. 代码展示
#include <bits/stdc++.h>
using namespace std;
int main() {
string str;
while (cin >> str) {
int num[256] = {0};
for (int i = 0; i < str.size(); ++i) {
num[str[i]]++;
}
int j;
for (j = 0; j < str.size(); ++j) {
if (num[str[j]] == 1) {
cout << str[j] << endl;
break;
}
}
if (j >= str.size())
cout << -1 << endl;
}
return 0;
}