// 题目描述
// 在一个字符串(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
;
}
转载于:https://www.cnblogs.com/kaibing/p/9044787.html