- 算法
- 1.双指针遍历,name指针和typed指针分别从两个字符串的第一个字符开始遍历,终止遍历的条件是typed指针遍历结束
- 2.当name的指针没有遍历结束时,比较两指针的字符是否相等
- 2.1如果相等,都加1移到下一个字符
- 2.2如果不相等,再看typed的指针是否是长按导致的重复字符,如果是就移到下一个字符,如果不是就返回false
- ps:代码优化精简
public boolean isLongPressedName(String name, String typed) { int i = 0; for (int j = 0; j < typed.length(); j++) { if (i < name.length() && name.charAt(i) == typed.charAt(j)) { i++; } else if (j == 0 || typed.charAt(j) != typed.charAt(j-1)) { return false; } } return i == name.length(); }