题目描述
例如: google 其中的不重复字符位 l 和 e ,那么久返回l的下标 4
解答
方法1:我开始的解题思路
public static int findFirstUniqChar(String vla){
Map<Character,Integer> map = new HashMap<>();
for (int i = 0;i<vla.length();i++){
char cha = vla.charAt(i);
if(!map.containsKey(cha)){
map.put(cha,i);
}else{
map.put(cha,-1);
}
}
Set<Character> characters = map.keySet();
int min = vla.length();
for (Character character : characters) {
if(map.get(character)!=-1&&map.get(character)<=min){
min = map.get(character);
}
}
if(min==vla.length()){
return -1;
}
return min;
}
方法二:网上的方法,贼6
public static int findFirstUniqChar(String vla){
for(int i =0;i<vla.length();i++){
char cha = vla.charAt(i);
if(vla.indexOf(cha)==vla.lastIndexOf(cha)){
return i;
}
}
return -1;
}