你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。
你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回 True。
示例 1:
输入:name = "alex", typed = "aaleex" 输出:true 解释:'alex' 中的 'a' 和 'e' 被长按。
来源:力扣(LeetCode)
这道题双数组同时遍历即可,主要是注意边界判断。
class Solution { public boolean isLongPressedName(String name, String typed) { char[] na=name.toCharArray(); char[] ty=typed.toCharArray(); int j=0; for(int i=0;i<ty.length;i++){ //当前位相等且name不能越界 if(j<na.length && na[j]==ty[i]){ j++; continue; } //当前位相等,判断是否重复键入,name不能越界 if(j>0 && na[j-1]==ty[i]){ continue; }else{ //当前位不相等,也不是上一个的重复输入,即匹配失败 return false; } } if(j<na.length){ //name未匹配结束,typed已经结束,匹配失败 return false; } return true; } }