leetcode Interleaving String python 解法

來源:互聯網
上載者:User

標籤:

Given s1s2s3, find whether s3 is formed by the interleaving of s1 and s2.

For example,
Given:
s1 = "aabcc",
s2 = "dbbca",

When s3 = "aadbbcbcac", return true.
When s3 = "aadbbbaccc", return false.

 

方案1:DFS

class Solution:    # @return a boolean    def isInterleave(self, s1, s2, s3):        if len(s1)+len(s2) == len(s3):            return self.DFS(s1,s2,s3)        else:            return False                def DFS(self,s1,s2,s3):        if not (s1 and s2) :            if s3 == s1+s2:                return True            else:                return False                    if s1[0] == s3[0] and self.DFS(s1[1:],s2,s3[1:]):            return True        elif s2[0] == s3[0] and self.DFS(s1,s2[1:],s3[1:]):            return True        else:            return False    

很不幸的是,逾時了

方案2:BFS

import Queueclass Solution:    # @return a boolean    def isInterleave(self, s1, s2, s3):        if len(s1)+len(s2) == len(s3):            return self.BFS(s1,s2,s3)        else:            return False                def BFS(self,s1,s2,s3):        q = Queue.Queue(len(s3))        q.put((0,0))        while(not q.empty()):            (x,y) = q.get()            if x==len(s1) or y == len(s2):                if s3[x+y:] == s1[x:]+s2[y:]:                    return True                else:                    return False            if s1[x] == s3[x+y]:                q.put((x+1,y))            if s2[y] == s3[x+y]:                q.put((x,y+1))                return False

還是逾時

leetcode Interleaving String python 解法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.