最初だけ登場キャラクター(達成JAVA) - 牛の顧客ネットワークは_タイトルセットプランを勝ち取ります

トピックリンク:

https://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c?tpId=13&tqId=11187&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

 

アイデア:各文字が表示され、ストレージの位置は、2次元配列の最後に出現するに、回数をASCIIコードマッピングを使用して、再度反復二次元アレイ、及び数1位置が最小現れる特定し、この位置への復帰がOKであり、複雑なO(N)の

 

実装のソースコード。

以下のためのパッケージ変更niuke; 

/ ** 
 * AZ:97-122 
 * AZ:65-90 
 * / 
パブリック クラスが最初に現れるだけで一つの文字{
     公共 のint FirstNotRepeatingChar(String str)文字{
         IF(str.length()== 0 | | STR == nullのリターン 0 ;
         int型 [] [] =統計新しい新しい int型 [2 [53れる] ];
         //はASCIIのマッピング、タイムズまずISは、第二の位置のIS 
        のchar [] TEMP = str.toCharArray();
         のためにINT Iは= 0; I <temp.length; ++ I){
             IF(TEMP [I]> = 97){
                 int型トランス= TEMP [I] - 96 
                統計[トランス] [ 0] + = 1 ; 
                統計[トランス] [ 1] = I。
            } {
                 int型トランス= TEMP [I] - 38 
                統計[トランス] [ 0] + = 1 ; 
                統計[トランス] [ 1] = I。
            } 
        } // 統計は、上にある
        INT分= 54 //         char型のRES = '#'; 
        以下のためにINT I 1 =; I <53; ++ i)が{
            もし(統計[I] [0] == 1 &&統計[I] [1] < 分){  =統計[I] [1 ]。
//                 RES =(CHAR)I。
            } 
        } 
        もし(分== 54 リターン -1 それ以外
            の戻り  分。
    } 
}

 

コードはACです

私は助けたいです

上記

おすすめ

転載: www.cnblogs.com/lavender-pansy/p/12484956.html