8.15 - hard - 49

269. Alien Dictionary

這道題最最最難點(diǎn)是看出這題是topology sort的解法圾另,如果看出是拓?fù)渑判虻脑捹搜敲搭}目就簡(jiǎn)單多了诸衔。

class Solution(object):
    def alienOrder(self, words):
        """
        :type words: List[str]
        :rtype: str
        """
        # topology sort
        # 首先第一步要構(gòu)建graph
        # 找出鏈表中的順序
        s = set()
        for word in words:
            for c in word:
                s.add(c)
        graph = {c:set() for c in s} # char to set()
        degree = {c:0 for c in s} # char to int
        # 處理詞之間的關(guān)系,依據(jù)鏈表的順序
        for i in range(1, len(words)):
            self.cal(words[i-1], words[i], graph)
        
        # 構(gòu)造degree
        for key in graph:
            for val in graph[key]:
                degree[val] = degree[val] + 1
        
        # 找出入度為0的加入queue
        queue = []
        for key in degree:
            if degree[key] == 0:
                queue.append(key)
        
        if not queue:
            return ""
        # print graph, degree
        res = ""
        while queue:
            key = queue.pop(0)
            res += key
            for val in graph[key]:
                degree[val] -= 1
                if degree[val] == 0:
                    queue.append(val)
        
        for key, val in degree.iteritems():
            if val != 0:
                return ""
        return res
        
        
    
    def cal(self, w1, w2, graph):
        for i in range(min(len(w1), len(w2))):
            if w1[i] != w2[i]:
                graph[w1[i]].add(w2[i])
                break
        
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市颇玷,隨后出現(xiàn)的幾起案子笨农,更是在濱河造成了極大的恐慌,老刑警劉巖帖渠,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谒亦,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡空郊,警方通過查閱死者的電腦和手機(jī)份招,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)狞甚,“玉大人锁摔,你說我怎么就攤上這事『呱螅” “怎么了谐腰?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵孕豹,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我十气,道長(zhǎng)励背,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任砸西,我火速辦了婚禮叶眉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘籍胯。我一直安慰自己竟闪,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布杖狼。 她就那樣靜靜地躺著炼蛤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蝶涩。 梳的紋絲不亂的頭發(fā)上理朋,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音绿聘,去河邊找鬼嗽上。 笑死,一個(gè)胖子當(dāng)著我的面吹牛熄攘,可吹牛的內(nèi)容都是我干的兽愤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼挪圾,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼浅萧!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起哲思,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤洼畅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后棚赔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體帝簇,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年靠益,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了丧肴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡捆毫,死狀恐怖闪湾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情绩卤,我是刑警寧澤途样,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布江醇,位于F島的核電站,受9級(jí)特大地震影響何暇,放射性物質(zhì)發(fā)生泄漏陶夜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一裆站、第九天 我趴在偏房一處隱蔽的房頂上張望条辟。 院中可真熱鬧,春花似錦宏胯、人聲如沸羽嫡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)杭棵。三九已至,卻和暖如春氛赐,著一層夾襖步出監(jiān)牢的瞬間魂爪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工艰管, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留滓侍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓牲芋,卻偏偏與公主長(zhǎng)得像撩笆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子缸浦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

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

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗(yàn)浇衬。 張土汪:刷leetcod...
    土汪閱讀 12,744評(píng)論 0 33
  • FreeCodeCamp - Basic Algorithm Scripting 這一部分真的要做筆記了,要不然又...
    付林恒閱讀 1,060評(píng)論 1 5
  • 目錄 場(chǎng)景假設(shè) 調(diào)優(yōu)步驟和方法 Storm 的部分特性 Storm 并行度 Storm 消息機(jī)制 Storm UI...
    mtide閱讀 17,109評(píng)論 30 60
  • LeetCode 刷題隨手記 - 第一部分 前 256 題(非會(huì)員)餐济,僅算法題,的吐槽 https://leetc...
    蕾娜漢默閱讀 17,778評(píng)論 2 36
  • 我才發(fā)現(xiàn)篙悯,現(xiàn)代的人太小氣,與對(duì)方開個(gè)玩笑都當(dāng)真铃绒。無(wú)語(yǔ)……鸽照! 凡事都得靠自己!
    155b251435a7閱讀 132評(píng)論 0 0