文字列の最初のユニークな文字


文字列内の初期のユニークなcharを見つけます.例えば、ストリングは「kodlogsforkodlogs」です、そして、結果は' f 'でなければなりません、そして、与えられた入力が「kodlogstest」であるならば、結果は' k 'でなければなりません.

文字列の最初のユニークな文字列

テクニック1:ハッシュマップと2つの文字列メソッドの横断.

アプローチ
文字列の発生率が1ならばcharは一意であると言われます.この挑戦は、専門的にそこに特定の事件にチャーをプロットし、我々は同時に任意のチャーの最新の周波数をもたらすことができるHashchenマップを使用して終了することができます.
class KodLogs{ 
    static final int Number_OF_CHARS = 256; 
    static char count[] = new char[Number_OF_CHARS]; 
    static void getCharCountArray(String str1) 
    { 
        for (int i1 = 0; i1 < str.length(); i1++) 
            count[str.charAt(i1)]++; 
    } 

    /* returns index of first unique char */
    static int firstNonRepeating(String str1) 
    { 
        getCharCountArray(str1); 
        int index1 = -1, i1; 
        for (i2 = 0; i2 < str1.length(); i2++) { 
            if (count[str.charAt(i2)] == 1) { 
                index1 = i1; 
                break; 
            } 
        } 
        return index1; 
    } 
    // Driver function
    public static void main(String[] args) 
    { 
        String str1 = "kodlogsforkodlogs"; 
        int index1 = firstNonRepeating(str1); 

        System.out.println( 
            Index1 == -1
                ? " all char are repeating or str "
                      + "is empty"
                : "unique char is "
                      + str1.charAt(index1)); 
    } 
}

出力unique char is "f"
テクニック2 :ハッシュマップと単一の文字列の横断

アプローチ
chars ( 256 )の最大数のハッシュマップにかかわらず配列を数えます.
Read more