LeetCode/387. 字符串中的第一个唯一字符

387. 字符串中的第一个唯一字符

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。

示例:

1
2
3
4
5
s = "leetcode"
返回 0

s = "loveleetcode"
返回 2

提示:你可以假定该字符串只包含小写字母。

来源:力扣(LeetCode)
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解:

本题常规思路就是遍历两遍字符串,第一遍统计每个字符出现的次数,第二遍找出只出现一次的字符串。

具体代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public int firstUniqChar(String s) {
char[] ch = s.toCharArray();
Map<Character, Integer> map = new HashMap<>();

for (int i = 0; i < ch.length; i++) {
map.put(ch[i], map.getOrDefault(ch[i], 0) + 1);
}

for (int i = 0; i < ch.length; i++) {
if (map.get(ch[i]) == 1) {
return i;
}
}

return -1;
}
}

Comments