给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -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; } }
|