【LC】単語の長さの318の最大商品

文字列の配列を指定して  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。
    } 
}

 

おすすめ

転載: www.cnblogs.com/xuanlu/p/11874918.html