📅  最后修改于: 2023-12-03 15:11:33.436000             🧑  作者: Mango
给定两个字符串A
和B
,请你判断B
是否为A
的字串。
可使用双指针的算法思路。
首先定义两个指针i
和j
,分别指向字符串A
和B
的首位字符。
然后,我们不断地将两个指针往后移动,当字符串A
中的字符与字符串B
中的字符相等时,指针i
和j
都往后移动一位,否则只将指针i
往后移动一位。
最后当指针j
已经到了字符串B
的结尾时,就可以判断B
是否为A
的字串了。
def is_substring(s: str, t: str) -> bool:
i = j = 0
while i < len(s) and j < len(t):
if s[i] == t[j]:
j += 1
i += 1
return j == len(t)
时间复杂度为$O(n)$,其中$n$为字符串A
的长度。
空间复杂度为$O(1)$,因为只使用了常数级别的额外空间。