def isSubsequence(s, t):
i, j = 0, 0
while i < len(s) and j < len(t):
if s[i] == t[j]:
i += 1
j += 1
return i == len(s)
print(isSubsequence("aaaaa", "bbaaaa"))
结果返回False
def isSubsequence(s, t):
i, j = 0, 0
while i < len(s) and j < len(t):
if s[i] == t[j]:
i += 1
else:
j += 1
return i == len(s)
print(isSubsequence("aaaaa", "bbaaaa"))
结果返回True
答案显而意见,第一个程序是正确的。自己第一次编程出错是第二个程序,多加了一个else语句,结果确是不一样的。这个题目要注意要以字符串s为基准,如果t中的字符串不是s中的字符,则让j指针移动;使用第二个程序,当j=2时,i指针将会一直与其字符串a匹配,导致i等于5,符合条件,返回True;