Given a string, find the first non-repeating character in it and return it’s index. If it doesn’t exist, return -1.
Examples:
s = “leetcode”
return 0.
s = “loveleetcode”,
return 2.
Note: You may assume the string contain only lowercase letters.
Subscribe to see which companies asked this question
解题思路:用map存储字符的个数,遍历两遍,确认第一个字符。
public class Solution {
public int firstUniqChar(String s) {
Map<Character, Integer> map2 = new HashMap<Character,Integer>();
int len = s.length();
for(int i = 0; i < len; i++)
{
if(map2.containsKey(s.charAt(i)))
{
int value = map2.get(s.charAt(i));
value ++;
map2.put(s.charAt(i),value);
}else{
map2.put(s.charAt(i),1);
}
}
for(int i = 0; i < len; i++)
{
if(map2.get(s.charAt(i))== 1)
{
return i;
}
}
return -1;
}
}