前往此题

双指针解法

我们假设有两个指针ij, 一个指向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)