📅  最后修改于: 2023-12-03 15:26:44.354000             🧑  作者: Mango
当需要判断一个字符串是否是另一个字符串的子集时,可以使用栈来实现。
def is_substring(s1: str, s2: str) -> bool:
stack = list(s1)
for c in s2:
if stack and stack[0] == c:
stack.pop(0)
return not stack
assert is_substring('hello', 'lo') == True
assert is_substring('Python', 'Java') == False
assert is_substring('leetcode', 'code') == True
assert is_substring('ab', 'acb') == False
assert is_substring('xyz', 'xyz') == True
以上算法的时间复杂度为$O(n)$,空间复杂度为$O(n)$,在实际应用中可根据实际情况做出调整。