[LeetCode By Python] 318. Maximum Product of Word Lengths

一敬尺、題目

Maximum Product of Word Lengths

二枚尼、解題

輸入:一個(gè)字符串列表
輸出:計(jì)算每?jī)蓚€(gè)沒有交集的字符串贴浙,算出乘積最大的。
常規(guī)解法署恍,兩重遍歷崎溃,判斷兩個(gè)數(shù)是否沒有交集,使用轉(zhuǎn)外為list和set對(duì)比長(zhǎng)度盯质,一樣則返回True袁串。

三、嘗試與結(jié)果

class Solution(object):
    def isDiff(self,a,b):
        s = a+b
        if len(list(s)) == len(set(list(s))):
            return True
        else:
            return False

    def maxProduct(self, words):
        maxLen = 0 
        for i in range(len(words)):
            for j in range(i,len(words)):
                if self.isDiff(words[i],words[j]):
                    lens = len(words[i]) * len(words[j])
                    maxLen = lens if lens>maxLen else maxLen
        return maxLen

結(jié)果:TL

再次嘗試呼巷,使用二進(jìn)制囱修。

class Solution(object):
    def fomatWord(self,words):
        fwords = []
        for word in words:
            fword = 0
            for letter in word:
                fword |= 1 << ord(letter) - ord('a')
            fwords.append(fword)
        return fwords

    def isDiff(self,a,b):
        if a & b == 0:
            return True
        else:
            return False

    def maxProduct(self, words):
        fwords = self.fomatWord(words)
        maxLen = 0 
        for i in range(len(words)):
            for j in range(i + 1,len(words)):
                if self.isDiff(fwords[i],fwords[j]):
                    lens = len(words[i]) * len(words[j])
                    maxLen = lens if lens>maxLen else maxLen
        return maxLen

結(jié)果:AC

說明:
1)把每一個(gè)單詞,都轉(zhuǎn)化為二進(jìn)制數(shù)朵逝,規(guī)則是把26個(gè)英文字母映射到二進(jìn)制數(shù)的每一位蔚袍,例如a映射到第0位、b第一位配名。如果一個(gè)數(shù)是abc啤咽,那么這個(gè)數(shù)是00,0000渠脉,0000宇整,0000,0000芋膘,0000鳞青,0111。
2)進(jìn)行這個(gè)操作是通過二進(jìn)制移位为朋,然后或上本身臂拓,fword |= 1 << ord(letter) - ord('a'),當(dāng)letter是b時(shí)习寸,ord(letter)-ord('a')等于1胶惰,把1往左移1位(其實(shí)就是把第二位變成了1、即存在b霞溪,第二位變?yōu)?)孵滞。
3)兩個(gè)數(shù)不同是通過a & b = 0來實(shí)現(xiàn)的,因?yàn)闆]有相同字母鸯匹,意味著兩個(gè)數(shù)在任意一位上坊饶,都不同(0和1),而0&1 = 0

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末殴蓬,一起剝皮案震驚了整個(gè)濱河市匿级,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖根蟹,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脓杉,死亡現(xiàn)場(chǎng)離奇詭異糟秘,居然都是意外死亡简逮,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門尿赚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來散庶,“玉大人,你說我怎么就攤上這事凌净”辏” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵冰寻,是天一觀的道長(zhǎng)须教。 經(jīng)常有香客問我,道長(zhǎng)斩芭,這世上最難降的妖魔是什么轻腺? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮划乖,結(jié)果婚禮上贬养,老公的妹妹穿的比我還像新娘。我一直安慰自己琴庵,他們只是感情好误算,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著迷殿,像睡著了一般儿礼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上庆寺,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天蚊夫,我揣著相機(jī)與錄音,去河邊找鬼止邮。 笑死这橙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的导披。 我是一名探鬼主播屈扎,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼撩匕!你這毒婦竟也來了鹰晨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎模蜡,沒想到半個(gè)月后漠趁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡忍疾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年闯传,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卤妒。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡甥绿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出则披,到底是詐尸還是另有隱情共缕,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布士复,位于F島的核電站图谷,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏阱洪。R本人自食惡果不足惜便贵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望澄峰。 院中可真熱鬧嫉沽,春花似錦、人聲如沸俏竞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽魂毁。三九已至玻佩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間席楚,已是汗流浹背咬崔。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留烦秩,地道東北人垮斯。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像只祠,于是被迫代替她去往敵國和親兜蠕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容

  • 1 關(guān)鍵字 1.1 關(guān)鍵字的概述 Java的關(guān)鍵字對(duì)java的編譯器有特殊的意義抛寝,他們用來表示一種數(shù)據(jù)類型熊杨,或...
    哈哈哎呦喂閱讀 646評(píng)論 0 0
  • 【1】7曙旭,9,-1晶府,5桂躏,( ) A、4川陆;B剂习、2;C书劝、-1进倍;D、-3 分析:選D购对,7+9=16;9+(-1)=8陶因;(...
    Alex_bingo閱讀 18,825評(píng)論 1 19
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理骡苞,服務(wù)發(fā)現(xiàn),斷路器楷扬,智...
    卡卡羅2017閱讀 134,601評(píng)論 18 139
  • 網(wǎng)站亂碼問題我們會(huì)經(jīng)常碰到解幽,大多見于非英文的中文字符或其他字符亂碼,而且烘苹,這類問題常常是因?yàn)榫幋a方式問題躲株,主要原因...
    波段頂?shù)?/span>閱讀 2,822評(píng)論 1 9
  • Java源碼 Integer Integer的簽名如下,繼承了Number類并實(shí)現(xiàn)Comparable接口 Com...
    wngn123閱讀 1,244評(píng)論 0 2