两个字符串A,B,查询B是否可能是A中的某些字符重复多次形成的。
两个指针,一个指向字符串A,一个指向字符串B,如果B[I]==A[I],那么移动两个指针,否则一直移动i。
如果指针j到了A的结尾,需要检查B是否后面的字符一直相同,即B多出的那一部分必须和A的最后一个字符相同。如果相同,则匹配。
如果指针i到了B的结尾,判断是否已经到了A的结尾,如果没有,那么不匹配。
这段代码可能更直观:
class Solution { public boolean isLongPressedName(String name, String typed) { int p = 0; for(int i = 0;i < typed.length();i++){ if(p < name.length() && typed.charAt(i) == name.charAt(p)){ p++; }else{ if(i > 0 && typed.charAt(i) == typed.charAt(i-1)){ continue; }else{ return false; } } } return p == name.length(); } }