📅  最后修改于: 2023-12-03 14:58:35.756000             🧑  作者: Mango
该题是一个关于字符串的问题,需要判断一个字符串是否为另一个字符串的子序列。以下为该题的具体描述:
给定两个字符串 s
和 t
,判断 s
是否是 t
的子序列。可假设 s
和 t
中均只包含英文小写字母。字符串的一个子序列是若干个字符按原有顺序排列而成的序列,不要求连续。
示例 1:
s = "abc", t = "ahbgdc"
返回 true.
示例 2:
s = "axc", t = "ahbgdc"
返回 false.
该题可以使用双指针解法,分别指向字符串 s
和 t
的开头,每次比较两个指针所指向的字符是否相等,若相等,则移动指向字符串 s
的指针,否则移动指向字符串 t
的指针。最后判断指向字符串 s
的指针是否到达了最后一个字符,若是则说明 s
是 t
的子序列,反之则不是。
代码实现如下:
class Solution:
def isSubsequence(self, s: str, t: str) -> bool:
s_idx, t_idx = 0, 0
while s_idx < len(s) and t_idx < len(t):
if s[s_idx] == t[t_idx]:
s_idx += 1
t_idx += 1
return s_idx == len(s)
该题是一道简单的字符串问题,使用双指针解法可以比较方便地解决问题。需要注意的是,判断指向字符串 s
的指针是否到达了最后一个字符的代码需要写在 while 循环外面,否则会出现边界问题。