当前位置: 首页 > ds >正文

LeetCode 925.长按键入

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

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

示例 1:

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

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

提示:

1 <= name.length, typed.length <= 1000
name 和 typed 的字符都是小写字母

直接模拟即可:

class Solution {
public:bool isLongPressedName(string name, string typed) {int nameIdx = 0;int typedIdx = 0;while (nameIdx < name.size() && typedIdx < typed.size()) {if (name[nameIdx] != typed[typedIdx]) {return false;}int nameSameNum = 1;while (nameIdx < name.size() - 1 && name[nameIdx] == name[nameIdx + 1]) {++nameIdx;++nameSameNum;}int typedSameNum = 1;while (typedIdx < typed.size() - 1 && typed[typedIdx] == typed[typedIdx + 1]) {++typedIdx;++typedSameNum;}if (typedSameNum < nameSameNum) {return false;}++nameIdx;++typedIdx;}// 循环结束时,可能name没有遍历完,也有可能typed没有遍历完// 处理没有遍历完的typedwhile (typedIdx < typed.size()) {if (typed[typedIdx] == typed[typedIdx - 1]) {++typedIdx;} else {return false;}}// 如果name没有遍历完,则typed一定不对应namereturn nameIdx == name.size();}
};

如果name的长度为n,typed长度为m,则此算法时间复杂度为O(n+m),空间复杂度为O(1)。

http://www.xdnf.cn/news/19790.html

相关文章:

  • 数据结构:希尔排序 (Shell Sort)
  • 【51单片机】【protues仿真】基于51单片机呼叫系统
  • 基于Force-closure评估的抓取计算流程
  • 生成知识图谱与技能树的工具指南:PlantUML、Mermaid 和 D3.js
  • 【AI报表】JimuReport 积木报表 v2.1.3 版本发布,免费可视化报表和大屏
  • 【leetcode】222. 完全二叉树的节点个数
  • Altium Designer中的Net-Tie:解决多网络合并与电气隔离的利器
  • CPTS-Vintage 票据,基于资源的约束委派 (RBCD),DPAPI密钥
  • 自制扫地机器人(二) Arduino 机器人避障设计——东方仙盟
  • Veo Videos Generation API 对接说明
  • 鸿蒙NEXT表单选择组件详解:Radio与Checkbox的使用指南
  • 开源 C++ QT Widget 开发(十)IPC进程间通信--共享内存
  • 零跑汽车8月交付57066台,同比增长超88%
  • amd cpu是x86架构吗
  • 【Audio】静音或振动模式下重复来电响铃
  • stdexcept介绍与使用指南
  • 【LeetCode】3670. 没有公共位的整数最大乘积 (SOSDP)
  • Day19_【机器学习—线性回归 (3)—回归模型评估方法】
  • Docker一键快速部署压测工具,高效测试 API 接口性能
  • ES6手录01-let与const
  • 学习日记-spring-day47-9.1
  • PyCharm 2025版本中新建python工程文件自动创建.venv的意义和作用
  • 教育 AI 的下半场:个性化学习路径生成背后,技术如何平衡效率与教育本质?
  • 第二十八天-DAC数模转换实验
  • “便农惠农”智慧社区系统(代码+数据库+LW)
  • 【深度学习基础】深度学习中的早停法:从理论到实践的全面解析
  • OpenCV C++ 入门实战:从基础操作到类封装全解析
  • UART控制器——ZYNQ学习笔记14
  • QT中的HTTP
  • GSM8K 原理全解析:从数学推理基准到大模型对齐的试金石