すべての単語の連結でleetcode 30サブストリング

すべての単語の連結でのLC30のサブストリング

二つのハッシュマップ

試合後の各単語の単語[]の出現のレコード番号を作るために、使用されます

各単語のI〜Jの発生を記録するために使用されるソース文字列、および元の比率

アイデアは、すべての連続した単語[]のソース文字列の長さをチェックすることである。長さ()*単語[0] .LENGTHサブストリング

(; - ; iは++ words.length()*単語[0] .LENGTH iがs.length()を<I = 0)のための

 

1  クラスソリューション{
 2      公共一覧<整数> findSubstring(文字列の文字列は、[]の単語){
 3          であれば(s.length()== 0 || words.length == 0 4              戻り 新しいのArrayList <整数> () ;
5          のHashMap <文字列、整数>のカウント= 新しい HashMapの<> ();
6          
7          ための(文字列I:ワード)
 8              count.put(I、count.getOrDefault(I、0)+ 1 )。
9          INT LEN =言葉[0 ] .LENGTH()。
10          INT wordsNum = words.length。
11         一覧<整数> RES = 新しい ArrayListを<> ();
12          
13の         ためにint型私= 0; iはs.lengthを(<) - LEN * wordsNum + 1; iは++ ){
 14              のHashMap <文字列、整数> seenWords =   新規 HashMapの<> ();
15              int型 J = 0 ;
16              一方(J < wordsNum){
 17                  文字単語= s.substring(iは+(J + 1)*、j個の*のLENを+ LEN)。
18                  であれば(count.containsKey(ワード)){
 19                      seenWords.put(ワード、seenWords.getOrDefault(ワード0)+ 1 )。
20                      もし(seenWords.get(ワード)> count.get(ワード))
 21                           ブレーク22                  
23                  } 他に
24                      ブレーク25                  J ++ ;
26              }
 27              であれば(J == wordsNum){
 28                  res.add(I)。
29              }
 30          }
 31の         リターンRES。
32      }
 33 }

 

おすすめ

転載: www.cnblogs.com/hwd9654/p/10992697.html