7.3 - hard - 22

97. Interleaving String

第一個思路是用recursion榨了,不過TLE了煎谍,看來是用DP來做了,用DP也算是做出來了龙屉,不過有點(diǎn)小疑問呐粘,在檢查s3的時候,要從1號位開始檢查转捕,而不是從0號位作岖,可以考慮成,s3[0]在初始化的時候已經(jīng)被初始化過了五芝,umm鳍咱,反正感覺有點(diǎn)tricky

class Solution(object):
   def isInterleave(self, s1, s2, s3):
       """
       :type s1: str
       :type s2: str
       :type s3: str
       :rtype: bool
       """
       print s1, s2, s3
       if len(s3) != len(s1) + len(s2):
           return False
       if not s1 and not s2 and not s3:
           return True
       if not s1:
           return s2 == s3
       if not s2:
           return s1 == s3
       
       if s1[0] == s2[0]:
           if s3[0] == s1[0]:
               return self.isInterleave(s1[1:], s2, s3[1:]) or self.isInterleave(s1, s2[1:], s3[1:])
           else:
               return False
       elif s1[0] == s3[0]:
           return self.isInterleave(s1[1:], s2, s3[1:])
       elif s2[0] == s3[0]:
           return self.isInterleave(s1, s2[1:], s3[1:])
       else:
           return False
class Solution(object):
    def isInterleave(self, s1, s2, s3):
        """
        :type s1: str
        :type s2: str
        :type s3: str
        :rtype: bool
        """
        if len(s3) != len(s1) + len(s2):
            return False
        if not s1 and not s2 and not s3:
            return True
        if not s1:
            return s2 == s3
        if not s2:
            return s1 == s3
        
        # dp[i][j] 表示 s1 0~i s2 0~j是否可以
        dp = [[False for _ in range(len(s2)+1)] for _ in range(len(s1)+1)]
        dp[0][0] = True
        for i in range(1, len(s1)+1):
            if s1[i-1] == s3[i-1]:
                dp[i][0] = True
            else:
                break
        for i in range(1, len(s2)+1):
            if s2[i-1] == s3[i-1]:
                dp[0][i] = True
            else:
                break
        for i in range(1, len(s1)+1):
            for j in range(1, len(s2)+1):
                if not dp[i][j]:
                    if s1[i-1] == s3[i+j-1] == s2[j-1]:
                        dp[i][j] = dp[i-1][j] or dp[i][j-1]
                    elif s1[i-1] == s3[i+j-1]:
                        dp[i][j] = dp[i-1][j]
                    elif s3[i+j-1] == s2[j-1]:
                        dp[i][j] = dp[i][j-1]
        return dp[len(s1)][len(s2)]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末恬砂,一起剝皮案震驚了整個濱河市堡牡,隨后出現(xiàn)的幾起案子劫乱,更是在濱河造成了極大的恐慌怎披,老刑警劉巖盛龄,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件饭耳,死亡現(xiàn)場離奇詭異爱只,居然都是意外死亡浪规,警方通過查閱死者的電腦和手機(jī)结蟋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進(jìn)店門脯倚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嵌屎,你說我怎么就攤上這事推正。” “怎么了宝惰?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵植榕,是天一觀的道長。 經(jīng)常有香客問我尼夺,道長尊残,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任淤堵,我火速辦了婚禮寝衫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拐邪。我一直安慰自己慰毅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布扎阶。 她就那樣靜靜地躺著汹胃,像睡著了一般婶芭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上统台,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天,我揣著相機(jī)與錄音啡邑,去河邊找鬼贱勃。 笑死,一個胖子當(dāng)著我的面吹牛谤逼,可吹牛的內(nèi)容都是我干的贵扰。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼流部,長吁一口氣:“原來是場噩夢啊……” “哼戚绕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起枝冀,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤舞丛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后果漾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體球切,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年绒障,在試婚紗的時候發(fā)現(xiàn)自己被綠了吨凑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡户辱,死狀恐怖鸵钝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情庐镐,我是刑警寧澤恩商,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站必逆,受9級特大地震影響痕届,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜末患,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一研叫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧璧针,春花似錦嚷炉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绘证。三九已至,卻和暖如春哗讥,著一層夾襖步出監(jiān)牢的瞬間嚷那,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工杆煞, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留魏宽,地道東北人。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓决乎,卻偏偏與公主長得像队询,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子构诚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評論 2 361

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