请问这个哪里出错了呀?

img

推荐用map做 不要暴力遍历

public class Solution {
    public int FirstNotRepeatingChar(String str) {
        if (null == str || str.length() == 0) { return -1; }
        int[] words = new int[58];
        char[] array = str.toCharArray();
        for (int i = 0; i < array.length; i++) {
            words[(int)array[i] - 65]++;
        }
        for (int i = 0; i < array.length; i++) {
            if (words[(int)array[i] - 65] == 1) {
                return i;
            }
        }
        return -1;
    }
}

少年人啊,你想窄了。
谁说这种题就一定需要常见的遍历方法来做了。
你用replace它不香么。
replace(substring(0,1),"") 然后判断字符串的长度是否减少超过1,是的话继续,不是的话返回index。
然后如果一直不是,返回-1。