class Solution {
public:
bool isSubsequence(string s, string t) {
}
};
392. 判断子序列
给定字符串 s 和 t ,判断 s 是否为 t 的子序列。
字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"
是"abcde"
的一个子序列,而"aec"
不是)。
进阶:
如果有大量输入的 S,称作 S1, S2, ... , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?
致谢:
特别感谢 @pbrother 添加此问题并且创建所有测试用例。
示例 1:
输入:s = "abc", t = "ahbgdc" 输出:true
示例 2:
输入:s = "axc", t = "ahbgdc" 输出:false
提示:
0 <= s.length <= 100
0 <= t.length <= 10^4
原站题解
python3 解法, 执行用时: 36 ms, 内存消耗: 14.9 MB, 提交时间: 2022-07-08 10:21:36
class Solution: def isSubsequence(self, s: str, t: str) -> bool: n, m = len(s), len(t) i = j = 0 while i < n and j < m: if s[i] == t[j]: i += 1 j += 1 return i == n
golang 解法, 执行用时: 0 ms, 内存消耗: 2 MB, 提交时间: 2021-08-03 09:43:43
func isSubsequence(s string, t string) bool { if len(s) == 0 { return true } i := 0 for i < len(t) { if s[0:1] == t[i:i+1] { s = s[1:] t = t[i+1:] return isSubsequence(s, t) } i++ } return false }
python3 解法, 执行用时: 48 ms, 内存消耗: 14.7 MB, 提交时间: 2020-12-21 14:16:58
class Solution: def isSubsequence(self, s: str, t: str) -> bool: m, n = len(s), len(t) i, j = 0, 0 while i < m and j < n: if s[i] == t[j]: i += 1 j += 1 return i == m