还是用hash表的算法。注意如果都没有单个的字母要返回-1。
另外注意是字符不是字母,数组范围(0,255)
class Solution {
public:
int firstUniqChar(string s) {
vector<int>hash(256, 0);
for (int i = 0; i < s.length(); i++) hash[s[i]]++;
for (int i = 0; i < s.length(); i++)
if (hash[s[i]] == 1) return i;
return -1;
}
};
好像没有更快的算法了。