题解 | #找出字符串中第一个只出现一次的字符#
找出字符串中第一个只出现一次的字符
https://www.nowcoder.com/practice/e896d0f82f1246a3aa7b232ce38029d4
/**
* @file hj59-找出字符串中第一个只出现一次的字符.cc
* @author jvcilang
* @brief
* 1. 将所有字符存入到容器中。
* 2. 将字符个数为 1 的字符存入到另一个容器中
* 3. 将这些元素与原来输入的string进行对比,然后输出第一次出现的单个字符
* @version 0.1
* @date 2022-08-18
*
* @copyright Copyright (c) 2022
*
*/
#include<iostream>
#include<string>
#include<vector>
#include <map>
#include <algorithm>
using namespace std;
void ChuXianYiCi()
{
string str;
getline(cin, str);
map<char, int> omap;
for (int i = 0; i < str.length(); i++) {
omap[str[i]] += 1;
}
vector<char> vec;
for (auto it = omap.begin(); it != omap.end(); it++) {
if (it->second == 1) {
vec.push_back(it->first);
}
}
int n = str.length();
for (int i = 0; i < vec.size(); i++) {
int a = str.find(vec[i]);
n = min(n, a);
}
if (n == str.length()) {
cout << -1 << endl;
} else {
cout << str[n] << endl;
}
}
int main()
{
ChuXianYiCi();
return 0;
}
