news 2026/4/28 0:22:19

力扣刷题:长按键入

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣刷题:长按键入

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

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

示例 1:

输入:name = “alex”, typed = “aaleex”
输出:true
解释:‘alex’ 中的 ‘a’ 和 ‘e’ 被长按。

示例 2:

输入:name = “saeed”, typed = “ssaaedd”
输出:false
解释:‘e’ 一定需要被键入两次,但在 typed 的输出中不是这样。

解析:
这道题使用双指针的思路是比较方便的:
用 i 遍历 name,用 j 遍历 typed。
如果 name[i] === typed[j],说明当前字符匹配,i 和 j 都向前移动。
如果 typed[j] === typed[j - 1](即 typed 的当前字符和前一个字符相同),说明这个字符是长按产生的,j 继续向前移动。
否则,说明 typed 无法由 name 通过长按得到,返回 false。
结束时,i 必须遍历完整个 name,否则说明 typed 里缺少 name 的部分字符,返回 false。

具体代码:

/** * 判断 typed 字符串是否是 name 字符串经过长按键入后的结果 * 长按键入:输入 name 时,某些键可能被长按,导致字符重复出现 * @param {string} name - 原始名字 * @param {string} typed - 实际键入的字符串(可能包含长按重复字符) * @return {boolean} - typed 是否是 name 的长按键入版本 */varisLongPressedName=function(name,typed){// 获取两个字符串的长度constn=name.length// 原始名字长度constm=typed.length// 实际输入长度// 双指针:i 指向 name 的当前字符,j 指向 typed 的当前字符leti=0// name 的索引指针letj=0// typed 的索引指针// 遍历 typed 字符串while(j<m){// 情况1:当前字符匹配成功(name 和 typed 的当前字符相同)// 条件 i < n 确保不会访问 name 越界的字符if(i<n&&name[i]===typed[j]){// 匹配成功,两个指针都向后移动一位i++// 处理 name 的下一个字符j++// 处理 typed 的下一个字符}// 情况2:当前字符不匹配,但 typed 当前字符是前一个字符的重复(长按产生的重复)// 条件 j > 0 确保 typed[j-1] 不会越界elseif(j>0&&typed[j]===typed[j-1]){// 这是长按产生的重复字符,只移动 typed 指针j++// 跳过这个重复字符,继续检查 typed 的下一个字符}// 情况3:既不匹配,也不是长按重复字符 → 直接失败else{// 说明 typed 中出现了 name 中没有的、也不是长按产生的新字符returnfalse}}// 遍历完 typed 后,检查 name 的所有字符是否都被匹配完// 如果 i === n,说明 name 的每个字符都在 typed 中找到了对应// 如果 i < n,说明 name 还有字符没被匹配到returni===n};
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 4:27:52

前端导入Word文档并保留图文混排的插件

企业级文档处理解决方案 作为贵州IT行业软件公司的.NET工程师&#xff0c;针对贵司在后台管理系统中增加Word粘贴和文档导入的需求&#xff0c;我提供以下专业解决方案&#xff0c;完全满足贵司的技术栈和预算要求。 技术架构设计 系统架构图 [客户端] ←HTTPS→ [Web层] ←…

作者头像 李华
网站建设 2026/4/27 7:25:11

文件管理自动化:.bat 脚本使用指南

您是否也曾被混乱的桌面和难以整理的文件所困扰&#xff1f;这篇文章的核心思想是&#xff0c;我们不必再进行繁琐的手动整理&#xff0c;而是可以通过创建简单的 .bat 自动化脚本&#xff0c;将文件管理变成一条高效的流水线&#xff0c;把脑力从重复的“数字体力活”中解放出…

作者头像 李华
网站建设 2026/4/25 14:55:46

IO模拟I2C

soft_i2c_io.h #pragma once #include <cstdint> class SoftI2cIo { public:virtual ~SoftI2cIo() default;virtual void init() 0; // GPIO初始化/* SCL */virtual void scl_low() 0; // 拉低virtual void scl_release() 0; // 释放&#xff08;输入/…

作者头像 李华
网站建设 2026/4/25 18:12:00

被锁死的想象力:当AI成了科研本身,人类只能是观众

别盯着AI写的烂文案了&#xff01;千亿级投入超越曼哈顿计划&#xff0c;科研速度抛弃人类带宽&#xff0c;一场「里氏10.0级」的震荡已在眼前。这不仅是工具的升级&#xff0c;更是文明断裂的开始。欢迎来到&#xff0c;人类即将无法认知的时代。我们对未来的想象力&#xff0…

作者头像 李华
网站建设 2026/4/25 12:23:21

短视频运营者智能获客全开源SAAS系统源码详解,轻松创建和管理子账户

温馨提示&#xff1a;文末有资源获取方式在数字化营销时代&#xff0c;拥有一套自主可控、功能全面的短视频运营系统&#xff0c;意味着掌握了流量获取与转化的主动权。今天介绍一款专为高效运营与商业变现而生的全开源智能系统源码&#xff0c;它将复杂操作简单化&#xff0c;…

作者头像 李华
网站建设 2026/4/26 5:09:21

【开题答辩全过程】以 基于安卓的景区购票系统为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

作者头像 李华