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

劍指offer-第一個只出現一次的字元

34.第一個只出現一次的字元

題目描述

在一個字串(0<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫).

解題思路:可新建一個數組,陣列大小為‘z’+1,陣列中的值為字串中每個字元出現的次數,然後遍歷整個字串將陣列中第一個大小為1的返回。

public int FirstNotRepeatingChar(String str) {
        if(str==null || str.length()==0)
            return -1;
        int[] arr=new int['z'+1];
        for(int i=0;i<str.length();i++)
        {
            arr[str.charAt(i)]++;
        }
        for(int i=0;i<str.length();i++)
        {
            if(arr[str.charAt(i)]==1)
                return i;
        }
        return -1;
    }