题目:925. 长按键入
你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。
你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回 True。
解答:
bool isLongPressedName(char * name, char * typed)
{
// 首字符不同,返回false
if(*name!=*typed)
return false;
while(*name!='\0' || *typed!='\0')
{
// 同时开始遍历、对比字符
if(*name==*typed)
{
name++;
typed++;
}
// 遇到字符不同 开始判断是否是键入多次的情况
else
{
// 键入多次的情况
if(*typed==*(typed-1))
{
typed++;
}
// 出现错误字符
// 既不是上一个字符的多次键入的字符
// 又不匹配下一个字符
else
{
return false;
}
}
}
return true;
}