【刷题】925. 长按键入——你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。 你将会检查键盘输入的字符 typed。

题目: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;
}

猜你喜欢

转载自blog.csdn.net/m0_46613023/article/details/113906108