劍指offer:第一個只出現一次的字元位置
阿新 • • 發佈:2019-02-06
public class Solution { public int FirstNotRepeatingChar(String str) { int flag = -1; if(str.length() == 0) return flag; int[] cnt = new int[66]; int[] order = new int[10001]; int i; for(i = 0; i < str.length(); i++) { cnt[str.charAt(i) - 'A']++; order[str.charAt(i) - 'A'] = i; } for(i = 0; i < cnt.length; i++) { if(cnt[i] == 1) { flag = order[i]; break; } } if(i == cnt.length) return flag; for(int j = i + 1; j < cnt.length; j++) { if(cnt[j] == 1) { flag = flag < order[j] ? flag : order[j]; } } return flag; } }