[Leetcode]@python 97. Interleaving String
2016-02-26 19:10
701 查看
题目链接
https://leetcode.com/problems/interleaving-string/题目原文
Given s1, s2, s3, 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.
题目大意
给定字符串s1, s2, s3,判断s3是否由s1和s2交叉组成的解题思路
动态规划:dp[i][j]表示s1[0...i-1]和s2[0...j-1]是否可以拼接为s3[0...i+j-1],可以拼接为true,不可以拼接为false代码
class Solution(object): def isInterleave(self, s1, s2, s3): """ :type s1: str :type s2: str :type s3: str :rtype: bool """ if len(s1) + len(s2) != len(s3): return False dp = [[False for i in range(len(s2) + 1)] for j in range(len(s1) + 1)] dp[0][0] = True for i in range(1, len(s1) + 1): if dp[i - 1][0] and s3[i - 1] == s1[i - 1]: dp[i][0] = True for i in range(1, len(s2) + 1): if dp[0][i - 1] and s3[i - 1] == s2[i - 1]: dp[0][i] = True for i in range(1, len(s1) + 1): for j in range(1, len(s2) + 1): if (dp[i - 1][j] and s1[i - 1] == s3[i + j - 1]) or (dp[i][j - 1] and s2[j - 1] == s3[i + j - 1]): dp[i][j] = True return dp[len(s1)][len(s2)]
相关文章推荐
- [Leetcode]@python 96. Unique Binary Search Trees
- Python2.7 urlparse学习
- python 二叉树
- python pip安装使用
- 怎么写python字符串截取
- python——strip,lstrip和rstrip
- Python学习笔记 - 9.元组(Tuple)
- python random模块
- Python作为移动客户端后台服务器
- mysql的python API
- Python中正则表达式的一些匹配规则
- 利用Python进行文章特征提取(一)
- python mysql
- Python语言特性
- python多线程编程以及join,setDaemon,线程锁的用法
- 廖雪峰python教程
- python终极解决UnicodeEncodeError
- Python学习笔记 - 8.字典(Dict)
- Python学习笔记 - 7.列表(List)
- Python PEP8代码风格