-
题目链接 https://leetcode-cn.com/problems/is-subsequence/submissions/
-
题目描述
-
给定字符串 s 和 t ,判断 s 是否为 t 的子序列。
你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。
字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,
"ace"
是"abcde"
的一个子序列,而"aec"
不是)。 -
示例 1:
s ="abc"
, t ="ahbgdc"
返回
true
.示例 2:
s ="axc"
, t ="ahbgdc"
返回
false
.
-
-
解题思路、
- 动态规划:dp[i][j] 是 s[0,,i] 是否是t[0..j]的子序列
- 状态转移方程
- 动态规划超时!
- 贪心: 按s串中顺序进行匹配,若能匹配完就是子序列
-
代码
- python
class Solution: def isSubsequence(self, s: str, t: str) -> bool: def helper(s, t, i, j, n1, n2): if i == n1:return True while i < n1 and j < n2: if s[i] == t[j]: return helper(s, t, i+1, j+1, n1, n2) j += 1 return False return helper(s, t, 0, 0, len(s), len(t))
- python
leetcode 392. 判断子序列
最新推荐文章于 2020-05-11 20:07:48 发布