説明:
段落と禁止用語のリストを考えると、禁止された単語のリストにない最も頻繁に言葉を返します。そこに禁止されていない少なくとも1つの単語である、と答えがユニークであることが保証されています。
禁止用語のリスト内の単語を小文字に与えられ、句読点の自由されています。段落内の単語は大文字と小文字を区別しません。答えは小文字です。
例:
入力: 段落は=「ボブは、それがヒットした後に打球が遠くに飛んで、ボールを打ちました。」 禁止= [「ヒット」] 出力:「ボール」 :解説 「ヒット」3回発生し、それが禁止単語です。 「ボールが」2回出現(および他の単語はしません)ので、段落の中で最も頻度の高い非禁止語です。 段落内の単語は大文字と小文字を区別しません。なお、 その句読点は、(たとえ言葉に隣接している場合、例えば「ボール」)は無視され 、それが「ヒット」それが禁止されているので、それはより多くを発生しても答えではありません。
注意:
1 <= paragraph.length <= 1000
。0 <= banned.length <= 100
。1 <= banned[i].length <= 10
。- 答えは一意であり、小文字で書かれた(での発生があっても
paragraph
、それが固有名詞である場合でも、大文字のシンボルを有することができます。) paragraph
文字のみ、スペース、句読点記号で構成されてい!?',;.
- 何ハイフンやハイフン付きの言葉はありません。
- 言葉は文字だけ、決してアポストロフィまたはその他の句読点記号で構成されています。
容認されました
73213
提出
172048
溶液:
容認されました
クラスソリューション{ パブリック文字列mostCommonWord(文字列、段落、文字列[]禁止){ 場合(段落== NULL || paragraph.length()== 0 ){ リターン "" 。 } String []型のres。= paragraph.toLowerCase()スプリット( "[「、;!?。] +"); // 非常に重要。 int型の最大= -1 ; 文字列の結果 =「」; 以下のために(int型 ; iはres.length <I ++は、I = 0 ){ // するSystem.out.println( " "+ I +" "+ RESを[I] +"" +カウント(RES、RES [I]))。 場合(カウント(RES、RES [i])と>マックス&){ 最大値 = カウント(RES、RES [I])。 結果 =のRES [i]は、 // するSystem.out.println( " "+ I +" "+なる+"" +最大)。 } } 戻り値の結果; } パブリック 静的 int型の数(文字列[] ARR、ストリングS){ int型のカウント= 0 ; 用(int型 ; iがarr.lengthを<I ++はiが0 = {) 場合(ARR [i]は.equals(S)){ カウント ++ 。 } } 戻り回数、 } }