0%

第一个只出现一次的字符

题目地址

难度:

题目描述:

在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。

示例:

1
2
3
4
5
s = "abaccdeff"
返回 "b"

s = ""
返回 " "

限制:

0 <= s 的长度 <= 50000

🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️解题过程🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️
解题过程:

思路:

计数法:对字符串s中的不同字符计数,然后遍历s,依次判断字符是否只出现一次直到找到只出现一次的字符,否则返回单空格字符。

c++代码:(执行用时140ms,击败38.88%,内存消耗11M,击败19.96%)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
public:
char firstUniqChar(string s) {
unordered_map<char,int> m;
for(char c:s){
m[c]++;
}
for(char c:s){
if(m[c]==1){
return c;
}
}
return ' ';
}
};
⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳总 结⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳
总结:

没有官方题解,水一道简单题😁

------------- THE END! THANKS! -------------