尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

力扣刷题:长按键入

力扣刷题:长按键入
📅 发布时间:2026/6/19 17:31:45

题目:
你的朋友正在使用键盘输入他的名字 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};

相关新闻

  • Java面试必看:同步方法和同步块到底该选哪个?
  • 谁懂啊!2026 转行网安太香了!480 万缺口 + 15K 起薪,薪资 + 工作内容 + 前景全解析!
  • 基于昇腾910B的文生图模型推理服务化部署

最新新闻

  • DeepTutor终极指南:打造您的个人AI学习助手
  • MC9S08SH32内存架构与安全机制:从寻址优化到Flash编程实战
  • 2026北京靠谱的上门回收字画公司推荐榜单 - 品牌排行榜
  • 重庆修补家具大理石/瓷砖/岩板/木门补漆推荐良匠千艺2026本地口碑榜 - 我叫一
  • 终极指南:用Parsec VDD免费扩展你的Windows虚拟显示器
  • 2026年新发布山东靠谱的罐罐酸奶加盟项目深度剖析:为何谷物全书罐罐酸奶成为市场焦点? - 品牌鉴赏官2026

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号