刷题记录:LeetCode 925.长按键入

题目:

你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。

你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回 True

复制代码
class Solution {
public:
    bool isLongPressedName(string name, string typed) {
        int nn = 0;
        int tt = 0;
        while (nn < name.size() || tt < typed.size())
        {
            if (name[nn] == typed[tt])
            {
                nn++;
                tt++;
            }
            else
            {
                if (tt == 0) return false;
                else 
                {
                    while (tt < typed.size() && typed[tt - 1] == typed[tt]) tt++;
                    if (name[nn] != typed[tt]) return false;
                    else 
                    {
                        tt++;
                        nn++;
                    }
                }
            }
        }
        if (tt < typed.size()) return false;
        return true;
    }
};
相关推荐
lsx2024065 分钟前
SVN 创建版本库
开发语言
xiaotao1317 分钟前
01-编程基础与数学基石:Python错误与异常处理
开发语言·人工智能·python
墨尘笔尖13 分钟前
最大最小值降采样算法的优化
c++·算法
皮卡蛋炒饭.1 小时前
线程的概念和控制
java·开发语言·jvm
John.Lewis1 小时前
Python小课(1)认识Python
开发语言·python
一只大袋鼠1 小时前
MyBatis 入门详细实战教程(一):从环境搭建到查询运行
java·开发语言·数据库·mysql·mybatis
sonnet-10291 小时前
函数式接口和方法引用
java·开发语言·笔记
Bat U1 小时前
JavaEE|多线程(二)
java·开发语言
YIN_尹2 小时前
【Linux系统编程】进程地址空间
linux·c++
烤麻辣烫2 小时前
JS基础
开发语言·前端·javascript·学习