字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
案例:
s = "leetcode" 返回 0. s = "loveleetcode", 返回 2.
注意事项:您可以假定该字符串只包含小写字母。
解题思路:
运用HashMap中键的不可重复性
对传入的字符串进行遍历,存放到HashMap中,
键储存字符串中的字母,值储存该字母出现的次数.
存储完成后,对HashMap进行遍历,返回第一个值为1的字母位置.
代码如下:
public static int firstUniqChar(String s) {
HashMap<Character,Integer> map = new HashMap<>();
char [] c = s.toCharArray();
for(char i:c){ //对字符串进行遍历存入Map中
if(map.containsKey(i)){
map.replace(i,map.get(i)+1);
}
else{
map.put(i,1);
}
}
for (int i = 0; i < c.length; i++) { //对Map遍历
if(map.get(c[i])==1) { //若出现次数为1则返回该字符。
return i;
}
}
return -1; //如果不存在就返回-1
}