news 2026/4/15 5:33:00

力扣刷题:长按键入

作者头像

张小明

前端开发工程师

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/15 8:10:42

选择优质LED照明需考量光源、光效及设计方案

于当下这么一个情形&#xff0c;此处LED照明技术正快速地普及以及发展着&#xff0c;挑选具备高品质的照明产品成为了增进商业空间效能跟提升居家生活品质的关键所在。市面上存在着数量众多的照明品牌&#xff0c;那些产品的特性是各不相同的&#xff0c;当消费者以及采购者在做…

作者头像 李华
网站建设 2026/4/14 7:32:08

python基于Vue的企业员工奖惩工资考勤管理系统的设计与实现_e45z9_django Flask pycharm项目

目录已开发项目效果实现截图关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;已开发项目效果实现截图 同行可拿货,招校园代理 ,本人源头供货商 python基于Vue的企业员工奖惩工资考勤…

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

python基于Vue的拍卖管理系统设计与实现_django Flask pycharm项目

目录已开发项目效果实现截图关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;已开发项目效果实现截图 同行可拿货,招校园代理 ,本人源头供货商 python基于Vue的拍卖管理系统设计与实…

作者头像 李华
网站建设 2026/4/9 20:42:35

新能源汽车车载双向 OBC 的 MATLAB 仿真探索

新能源汽车车载双向OBC&#xff0c;PFC&#xff0c;LLC&#xff0c;V2G 双向 充电桩 电动汽车 车载充电机 充放电机 MATLAB仿真模型 &#xff08;1&#xff09;基于V2G技术的双向AC/DC、DC/DC充放电机MATLAB仿真模型&#xff1b; &#xff08;2&#xff09;前级电路为双向AC/D…

作者头像 李华
网站建设 2026/4/14 23:45:42

python基于Vue的电影院售票选座评价影评系统_5s356_django Flask pycharm项目

目录已开发项目效果实现截图关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;已开发项目效果实现截图 同行可拿货,招校园代理 ,本人源头供货商 python基于Vue的电影院售票选座评价影…

作者头像 李华