题目的链接在这里: https://leetcode-cn.com/problems/long-pressed-name/
你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回 True。
代码如下:
class Solution { public boolean isLongPressedName(String name, String typed) { //按照网上的解析,用的双指针 int len_n=name.length(); int len_t=typed.length(); //先排除极端情况,如果输入的值都比最终值要小,肯定不会 if(len_n>len_t){ return false; } //然后开始双指针 int i=0,j=0; while(i<len_n&&j<len_t){ //开始指向,如果他们是一样的话,就一起向前 if(name.charAt(i)==typed.charAt(j)){ i++; j++; } //如果出现不一样的,但是有一种特殊情况,也就是重样的时候比如:alex 和aaleex这样,直接看j是不是等于前面的一个 else if(j>0&&typed.charAt(j)==typed.charAt(j-1)){ j++; } //其他情况下,都直接返回 else{ return false; } } //跳出循环还需要做一些优化 while(j<len_t){ if(typed.charAt(j)!=typed.charAt(j-1)) return false; j++; } return i ==len_n; } }