【LeetCode with Python】 Interleaving String
来源:互联网 发布:淘宝法院司法拍卖平台 编辑:程序博客网 时间:2024/06/05 11:26
博客域名:http://www.xnerv.wang
原题页面:https://oj.leetcode.com/problems/interleaving-string/
题目类型:动态规划
难度评价:★★★
本文地址:http://blog.csdn.net/nerv3x3/article/details/4258745
原题页面:https://oj.leetcode.com/problems/interleaving-string/
题目类型:动态规划
难度评价:★★★
本文地址:http://blog.csdn.net/nerv3x3/article/details/4258745
Given s1, s2, s3, find whether s3 is formed by the interleaving ofs1 ands2.
For example,
Given:
s1 = "aabcc"
,
s2 = "dbbca"
,
When s3 = "aadbbcbcac"
, return true.
When s3 = "aadbbbaccc"
, return false.
比较常规的一道字符串DP问题。注意检查传入参数,可以加速某些极端case的检测速度。此外还是用两个row代替一个完整的二维矩阵,节约空间消耗。
class Solution: # @return a boolean def isInterleave(self, s1, s2, s3): len1 = len(s1) len2 = len(s2) len3 = len(s3) if len1 + len2 != len3: return False if 0 == len1: return s2 == s3 if 0 == len2: return s1 == s3 row1 = [False for col in range(len2 + 1)] row1[0] = True for i in range(1, len2 + 1): row1[i] = ( row1[i - 1] and (s2[i - 1] == s3[i - 1])) row2 = [False for col in range(len2 + 1)] for m in range(1, len1 + 1): row2[0] = (row1[0] and (s1[m - 1] == s3[m - 1])) for n in range(1, len2 + 1): k = m + n - 1 # why and ? because [m, n] maybe come from up or left, one of the two is the right source. row2[n] = (s1[m - 1] == s3[k] and row1[n]) or (s2[n - 1] == s3[k] and row2[n - 1]) row1, row2 = row2, row1 return row1[len2]
- 【LeetCode with Python】 Interleaving String
- [Leetcode][python]Interleaving String
- 99. Interleaving String Leetcode Python
- [Leetcode]97. Interleaving String @python
- leetcode 97 Interleaving String(python)
- [LeetCode 97] Interleaving String(Python)
- LeetCode: Interleaving String
- LeetCode Interleaving String
- LeetCode: Interleaving String
- [Leetcode] Interleaving String
- [LeetCode] Interleaving String
- leetcode 68: Interleaving String
- [Leetcode] Interleaving String
- LeetCode - Interleaving String
- [LeetCode]Interleaving String
- LeetCode: Interleaving String
- Leetcode: Interleaving String
- [Leetcode]Interleaving String
- Symbian 位图CFbsBitmap 90度旋转
- JAVA中是传值还是传引用?回答KEZHANG问题
- 软件开发项目计划书编写说明
- 硕士论文书写注意事项
- Oracle DBA在新环境下必须了解的事情
- 【LeetCode with Python】 Interleaving String
- ABAP SEARCH HELP ii
- 微软技术体系vc篇
- 三招让Oracle表列管理更加简单
- bs程序设计基本思想
- -
- FLEX权限--使用RemoteObject交互结合spring AOP控制项目权限教程
- 安装VS2008后再装Office2007的时候出现的问题解决方法
- 剑术,语言和模式(转自博客园)