925. 长按键入

it2025-05-17  19

925. 长按键入

你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。

你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回 True。

思路

令双指针分别指向name和typed的开头,比较name[i]和typed[j]是否相等,相等匹配成功都前进一步,不相等的话判断typed[j]是否和typed[j - 1]相等,相等证明是长按,j前进,不相等则可以直接返回false,最后判断name是否全部被匹配即可。

代码

class Solution { public: bool isLongPressedName(string name, string typed) { int i = 0, j = 0; while(j < typed.size()) { if(i < name.size() && name[i] == typed[j]) { i++; j++; } else if(j > 0 && typed[j] == typed[j - 1]) { j++; } else { return false; } } return i == name.size(); } };
最新回复(0)