阅读量:0
Leetcode 392. 判断子序列
一、题目描述
给定字符串 s 和 t ,判断 s 是否为 t 的子序列。
字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。
示例 1:
输入:s = “abc”, t = “ahbgdc”
输出:true
示例 2:
输入:s = “axc”, t = “ahbgdc”
输出:false
提示:
- 0 <= s.length <= 100
- 0 <= t.length <= 10^4
- 两个字符串都只由小写字符组成。
二、我的想法
1.求出 s 的长度,如果 s 的长度大于 t 的长度,返回 False。如果 s 的长度等于 0,返回 True。
2.单指针。遍历 t ,当 t 对应的字符和 s对应的指针字符相同时,指针后移。如果指针的长度和 s 长度相同时,即指向了 s 的后一位,则说明 s 为 t 的子序列,返回 True。
3.如果 t 遍历结束后,指针的长度还和 s 长度不相等,则说明 s 不是 t 的子序列,返回 False。
class Solution: def isSubsequence(self, s: str, t: str) -> bool: sLen = len(s) if sLen > len(t): return False if sLen == 0: return True first = 0 for tstr in t: if s[first] == tstr: first += 1 if first == sLen: return True return False