双指针解法
我们假设有两个指针i
、j
, 一个指向name
的元素,另外一个指向typed
的元素。接下来只要考虑到两个条件:
i,j两个指针同步往后移,如果i
, j
相等则继续,如果出现不相等就说明有长按情况出现了。
如果出现长按情况,j指针单独往后移直到i
,j
相等为止。
代码
class Solution:
def isLongPressedName(self, name: str, typed: str) -> bool:
i, j = 0, 0
while j < len(typed):
if i < len(name) and name[i] == typed[j]:
i+=1
j+=1
elif j > 0 and typed[j] == typed[j-1]:
j+=1
else:
return False
return i == len(name)