AcWing 781. 趣味字母卡片
原题链接
简单
作者:
跟着灿哥学切菜
,
2021-02-08 00:37:24
,
所有人可见
,
阅读 348
#include <iostream>
#include <algorithm>
#include <unordered_set>
using namespace std;
int main() {
string str;
cin >> str;
//首先将字符串中的字符变成小写字符
for (char &c : str) c = tolower(c);
for (char c = 'a'; c <= 'z'; c ++) {
//找到c字符的位置
int k = 0;
while (k < str.size() && str[k] != c) k ++;
//然后将c位置后面的所有的元素全部放到哈希表中
unordered_set<char> hash;
for (int i = k + 1; i < str.size(); i ++) {
hash.insert(str[i]);
}
//设置一个变量来表示当前的字符能否出现在第一个位置上
bool can = true;
for (int i = 0; i < k; i ++) {
if (!hash.count(str[i])) {
can = false;
break;
}
}
if (can) {
cout << c << endl;
break;
}
}
return 0;
}