题目:
代码(首刷自解 2024年3月31日):
class Solution {
public:
int firstUniqChar(string s) {
queue<int> q;
vector<int> num(26, 0);
for (int i = 0; i < s.size(); ++i) {
if (num[s[i] - 'a'] == 0) {
num[s[i] - 'a']++;
q.push(i);
} else if (num[s[i] - 'a'] == 1) {
num[s[i] - 'a'] = -1;
} else {
continue;
}
}
while (!q.empty()) {
if (num[s[q.front()] - 'a'] == 1) {
return q.front();
}
q.pop();
}
return -1;
}
};