这一题是比较简单的,分别遍历name字符串和typed字符串进行比较就可以解决问题。
代码
class Solution {
public static boolean isLongPressedName(String name, String typed) {
//用nn和tt两个字符数组暂存name和typed两个字符串
char[]nn=name.toCharArray();
char[]tt=typed.toCharArray();
//如果nn的长度为0,或者nn比tt长,或者nn[0]不等于tt[0],返回false
if(nn.length==0||nn.length>tt.length||nn[0]!=tt[0])
return false;
//开始遍历两个数组
int i=1;int j=1;
while(i<nn.length&&j<tt.length){
//如果两数组当前下标位置字符相等,继续遍历,否则继续判断tt数组当前下标与前一下标位置的字符
if(nn[i]!=tt[j]) {
if(tt[j]==tt[j-1])
{
j++;
}
else
return false;
}
else {
i++;
j++;
}
}
//如果nn遍历完毕,tt未遍历完,继续遍历tt看tt剩下来的字符是否相等与nn的最后一个字符相等
//如果tt遍历完,直接正确。
if(i==nn.length) {
--i;
while(j<tt.length) {
if(tt[j]!=nn[i])
return false;
j++;
}
return true;
}
else
return false;
}
}