in 会消耗迭代器
str = "1234567"
it = iter(str)
print("2" in it)#当完成这一步的时候it指向2
print(it.__next__())#完成这一步的时候it指向3
print("3" in it)#因为上一步指向了3,所以此时匹配是从4开始的
#因为一直找不到,it最终指向了end(),导致下面的for循环次数为0
for a in it:
print(a)
结果:
所以在判断子串问题的时候可以用迭代器:
def isSubsequence(self, s: str, t: str) -> bool:
it = iter(t)
return all(c in it for c in s)