推荐用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。