1. 程式人生 > >劍指offer:第一個只出現一次的字元位置

劍指offer:第一個只出現一次的字元位置

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