方法1:哈希表
时间复杂度:$O(n)$
空间复杂度:$O(Σ)$,期中Σ是字符集
解题思路
见代码注释。
Java 代码
class Solution {
public int firstUniqChar(String s) {
Map<Character, Integer> map = new HashMap<>();
int len = s.length();
for (int i = 0; i < len; i ++) {
char c = s.charAt(i);
map.put(c, map.getOrDefault(c, 0) + 1);
}
for (int i = 0; i < len; i ++) {
if (map.get(s.charAt(i)) == 1) {
return i;
}
}
return -1;
}
}