49

輸入 java.utilの。* ; 

/ ** 
 * <キー、値>マップを作成
 *キーは#0#4#1〜#7です... 26総
 *値は、これらの文字列です
 *ヒント:文字あたりの時間を計算し、それらを比較する
 * / 
クラスソリューション{
     公衆リスト<リストの<string >> groupAnagrams(文字列[] STRS){
         場合(strs.lengthは== 0 ){
             戻り 新しい)(ArrayListのを、
        } 
        地図 <文字列一覧> RES = 新規 HashMapの<文字列一覧> ();
        intは [] =カウント新しい INT [26 ]。
        (文字列S:STRS){ 
            Arrays.fill(カウント 0 )。
            ためチャーC:s.toCharArray()){ 
                [Cカウント - 'A'を] ++ ; 
            } 

            StringBuilderのSB = 新しい StringBuilderの( "" )。
            以下のためにint型、iは26 <; I = 0 iは++ ){ 
                sb.append( '#'を)。
                sb.append([i]のカウント)。
            } 
            文字列キー = sb.toString()。
            もし(! res.containsKey(キー)){
                res.put(キー、新しいArrayListを()); 
            } 
            res.get(キー)を(S).add。
        } 
        戻り 新しいArrayListを(res.valuesを())。
    } 
}

 

おすすめ

転載: www.cnblogs.com/zhaijiayu/p/11541578.html
49
49
49
49