LintCode 77 [Longest Common Subsequence]

原題

給出兩個(gè)字符串蔓肯,找到最長(zhǎng)公共子序列(LCS)搀绣,返回LCS的長(zhǎng)度。

給出"ABCD""EDCA"恰聘,這個(gè)LCS是 "A" (或 D或C)句各,返回1
給出** "ABCD"** 和 "EACB",這個(gè)LCS是"AC"返回 2

解題思路

  • 雙序列型動(dòng)態(tài)規(guī)劃 - Two Sequence DP
  • cache[i][j]表示第一個(gè)字符串的前i個(gè)字符和第二個(gè)字符串的前j個(gè)字符的最長(zhǎng)公共子序列的長(zhǎng)度
  • 狀態(tài)轉(zhuǎn)移方程:
  • 如果str1[i] != str2[j]
    cache[i][j] = max(cache[i][j - 1], cache[i - 1][j])
  • 如果str1[i] != str2[j]
    cache[i - 1][j - 1] + 1

完整代碼

class Solution:
    """
    @param A, B: Two strings.
    @return: The length of longest common subsequence of A and B.
    """
    def longestCommonSubsequence(self, A, B):
        if not A or not B:
            return 0
            
        cache = [[0 for i in range(len(A) + 1)] for j in range(len(B) + 1)]
        
        for i in range(1, len(B) + 1):
            for j in range(1, len(A) + 1):
                if A[j - 1] == B[i - 1]:
                    cache[i][j] = cache[i - 1][j - 1] + 1
                else:
                    cache[i][j] = max(cache[i][j - 1], cache[i - 1][j])
        
        return cache[len(B)][len(A)]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末晴叨,一起剝皮案震驚了整個(gè)濱河市凿宾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌兼蕊,老刑警劉巖初厚,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異孙技,居然都是意外死亡产禾,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門牵啦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亚情,“玉大人,你說我怎么就攤上這事哈雏±慵” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵裳瘪,是天一觀的道長(zhǎng)土浸。 經(jīng)常有香客問我,道長(zhǎng)彭羹,這世上最難降的妖魔是什么黄伊? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮派殷,結(jié)果婚禮上毅舆,老公的妹妹穿的比我還像新娘西篓。我一直安慰自己,他們只是感情好憋活,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布岂津。 她就那樣靜靜地躺著,像睡著了一般悦即。 火紅的嫁衣襯著肌膚如雪吮成。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天辜梳,我揣著相機(jī)與錄音粱甫,去河邊找鬼。 笑死作瞄,一個(gè)胖子當(dāng)著我的面吹牛茶宵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播宗挥,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼乌庶,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了契耿?” 一聲冷哼從身側(cè)響起瞒大,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎搪桂,沒想到半個(gè)月后透敌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡踢械,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年酗电,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片内列。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡顾瞻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出德绿,到底是詐尸還是另有隱情,我是刑警寧澤退渗,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布移稳,位于F島的核電站,受9級(jí)特大地震影響会油,放射性物質(zhì)發(fā)生泄漏个粱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一翻翩、第九天 我趴在偏房一處隱蔽的房頂上張望都许。 院中可真熱鬧稻薇,春花似錦、人聲如沸胶征。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽睛低。三九已至案狠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間钱雷,已是汗流浹背骂铁。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留罩抗,地道東北人拉庵。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像套蒂,于是被迫代替她去往敵國(guó)和親钞支。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

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

  • 動(dòng)態(tài)規(guī)劃(Dynamic Programming) 本文包括: 動(dòng)態(tài)規(guī)劃定義 狀態(tài)轉(zhuǎn)移方程 動(dòng)態(tài)規(guī)劃算法步驟 最長(zhǎng)...
    廖少少閱讀 3,256評(píng)論 0 18
  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗(yàn)泣懊。 張土汪:刷leetcod...
    土汪閱讀 12,724評(píng)論 0 33
  • 第1章 第一個(gè)C程序第2章 C語言基礎(chǔ)第3章 變量和數(shù)據(jù)類型第4章 順序結(jié)構(gòu)程序設(shè)計(jì)第5章 條件結(jié)構(gòu)程序設(shè)計(jì)第6章...
    小獅子365閱讀 10,617評(píng)論 3 71
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法馍刮,類相關(guān)的語法信夫,內(nèi)部類的語法,繼承相關(guān)的語法卡啰,異常的語法静稻,線程的語...
    子非魚_t_閱讀 31,587評(píng)論 18 399
  • java筆記第一天 == 和 equals ==比較的比較的是兩個(gè)變量的值是否相等,對(duì)于引用型變量表示的是兩個(gè)變量...
    jmychou閱讀 1,485評(píng)論 0 3