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