Leetcode 392. 判断子序列

avatar
作者
筋斗云
阅读量:0

392. 判断子序列

Leetcode 392. 判断子序列

一、题目描述

给定字符串 st ,判断 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 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!