輸入 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を())。 } }