// 题目描述
// 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置
public static int FirstNotRepeatingChar(String str) {
// char[] chars = str.toCharArray();
// int count = 0;
// for (int i=0; i<chars.length;i++){
// count = 0;
// for (int j=0;j<chars.length;j++){
// if (chars[i]==chars[j]){
// count++;
// }
// }
// if (count == 1){
// return i;
// }
// }
// return -1;
Map<Character,Integer> map = new HashMap<Character, Integer>();
char[] chars = str.toCharArray();
for (int i=0; i<chars.length;i++){
if (map.containsKey(chars[i])){
Integer integer = map.get(chars[i]);
integer++;
map.put(chars[i],integer);
}else {
map.put(chars[i],1);
}
}
for (int i=0; i<chars.length;i++){
Integer integer = map.get(chars[i]);
if (integer == 1){
return i;
}
}
return -1;
}