//字符串匹配模式,在typed中查找name
public boolean isLongPressedName(String name, String typed) {
//定义两个指针
//名字字符串指针
int nameIndex = 0;
//输入的字符串的指针
int typedIndex =0;
if(name.length()> typed.length()) return false;
while(nameIndex<name.length()&&typedIndex<typed.length()){
//在人名字符串中连续两个字符相等
if(nameIndex<name.length()-1&&name.charAt(nameIndex)==name.charAt(nameIndex+1)){
//在输入的字符串中不能去重,正常处理
if(name.charAt(nameIndex)!=typed.charAt(typedIndex)) return false;
nameIndex++;
typedIndex++;
}else{//在人名字符串中不存在连续的重复字符串,则在输入字符串需要跳过重复的字符串
//存在重复字符串
while(typedIndex<typed.length()-1&&typed.charAt(typedIndex)==typed.charAt(typedIndex+1)){
typedIndex++;
}
//跳过重复字符串若不相等则返回false
if(name.charAt(nameIndex)!=typed.charAt(typedIndex)) return false;
nameIndex++;
typedIndex++;
}
}
if(nameIndex<name.length()||typedIndex<typed.length()) return false;
return true;
}
LeetCode925 长俺键入
最新推荐文章于 2024-02-29 11:29:21 发布