public class Solution {
public int FirstNotRepeatingChar(String str) {
if (str == null || str.length() == 0) {
return -1;
}
char[] chars = str.toCharArray();
//ASCII 256最大长度,所以定义长度为256数组
int[] asciisHash = new int[256];
for (int i = 0; i < chars.length; i++) {
//hash每个字符,计算count++操作 记录次数
asciisHash[chars[i]] += 1;
}
//遍历刚才定位每个字符出现次数的数组,当遇到第一个次数为1次的字符时,返回其位置
for (int j = 0; j < chars.length; j++) {
if (asciisHash[chars[j]] == 1) {
return j;
}
}
return -1;
}
} 


京公网安备 11010502036488号