问题描述
在字符串s中找出第一个只出现一次的字符。如果没有,返回一个单空格。
示例:
s = “abaccdeff”
返回 “b”
s = “”
返回 " "
限制:
0 <= s 的长度 <= 50000
解题报告
见代码。
时间复杂度
O
(
n
)
O(n)
O(n)
空间复杂度
O
(
26
)
O(26)
O(26)
实现代码
class Solution {
public:
char firstUniqChar(string s) {
vector<int>lastV(26,-1);
for(int i=0;i<s.size();i++){
if(lastV[s[i]-'a']!=-1) lastV[s[i]-'a']=INT_MAX;
else lastV[s[i]-'a']=i;
}
for(int i=0;i<s.size();i++){
if(i==lastV[s[i]-'a']) return s[i];
}
return ' ';
}
};