文字列の配列を指定して words
、の最大値を見つける length(word[i]) * length(word[j])
二つの単語が共通の文字を共有していないところを。あなたは、各単語のみ小文字が含まれていることを仮定してもよいです。そのような二つの言葉が存在しない場合は、0を返します。
例1:
入力:["abcw","baz","foo","bar","xtfn","abcdef"]
出力:16 Explanation:
二つの単語が可能"abcw", "xtfn"
。
例2:
入力:["a","ab","abc","d","cd","bcd","abcd"]
出力:4 Explanation:
二つの単語が可能"ab", "cd"
。
例3:
入力:["a","aa","aaa","aaaa"]
出力:0 Explanation:
言葉のないようにペア。
クラスソリューション{ 公共 のint maxProduct(文字列[]ワード){ INT []チェッカー= 新しい INT [words.length]。 もし(単語== NULL || words.length == 0 ){ 戻り 0 。 } INT RES = 0 。 以下のために(INT I 0 =; I <words.length; I ++ ){ 文字列のワード = ワード[I]; 用(INT ; J <word.length(); J = 0 J ++ ){ チャー curChar =word.charAt(J)。 チェッカー[I] | = 1 << curChar - '' ; } } のために(INT iは= 0; I <words.length - 1; I ++ ){ ため(INT J = I + 1、J <words.length; J ++ ){ もし、((チェッカー[I]&チェッカー[J] )== 0 ){ RES = Math.max(RES、単語[I] .LENGTH()* 単語[J] .LENGTH())。 } } } 戻りRES。 } }