题解 | #找出字符串中第一个只出现一次的字符#
找出字符串中第一个只出现一次的字符
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; }