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; } }