1. 题目

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

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

示例 1:
输入:name = "alex", typed = "aaleex"
输出:true
解释:'alex' 中的 'a' 和 'e' 被长按。示例 2:
输入:name = "saeed", typed = "ssaaedd"
输出:false
解释:'e' 一定需要被键入两次,但在 typed 的输出中不是这样。示例 3:
输入:name = "leelee", typed = "lleeelee"
输出:true示例 4:
输入:name = "laiden", typed = "laiden"
输出:true
解释:长按名字中的字符并不是必要的。提示:
name.length <= 1000
typed.length <= 1000
name 和 typed 的字符都是小写字母。

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/long-pressed-name
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Solution { // LeetCode
public:bool isLongPressedName(string name, string typed) {int i = 0, j = 0;if(name.size() > typed.size())return false;while(j < typed.size()){if(i < name.size() && name[i] == typed[j])i++, j++;else if(j > 0 && typed[j-1] == typed[j])j++;elsereturn false;}return (i == name.size());}
};

0 ms 8.6 MB

class Solution { // 2021.1.9 天池在线编程
public:/*** @param name: your friend's name* @param typed: the typed string* @return: Return True if it is possible that it was your friends name*/bool isLongPressedName(string &name, string &typed) {// Write your code hereif(name.size() > typed.size())return false;int i = 0, j = 0, n = name.size(), m = typed.size();char prev = '*';while(i < n && j < m){if(name[i] == typed[j]){i++, j++;prev = name[i-1];}else{if(typed[j] != prev)return false;j++;}}if(i < n) return false;while(j < m){if(typed[j++] != prev)return false;}return true;}
};

天池题目地址:https://tianchi.aliyun.com/oj/245809026182441523/267721733825565363

LeetCode 925. 长按键入(双指针)相关推荐

  1. leetcode 925. 长按键入

    题目描述: 你的朋友正在使用键盘输入他的名字 name.偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次. 你将会检查键盘输入的字符 typed.如果它对应的可能是你的朋友的 ...

  2. 2022-2-9 Leetcode 925.长按键入

    第一反应用哈希表,但是不行 class Solution {public:bool isLongPressedName(string name, string typed) {if(name.size ...

  3. 台安变频器n2按键说明_力扣 925. 长按键入

    925. 长按键入 题目描述 你的朋友正在使用键盘输入他的名字 name.偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次. 你将会检查键盘输入的字符 typed.如果它对应 ...

  4. Leetcode:925. 长按键入

    bool isLongPressedName(char * name, char * typed){int n=strlen(name),t=strlen(typed);int i=0,j=0;whi ...

  5. 有效的括号长按键入验证外星语词典字符的最短距离用栈实现队列

    有效的括号 来源:杭哥 20. 有效的括号 - 力扣(LeetCode) bool isValid(char * s) {int sz=strlen(s);char stack[sz];int k=0 ...

  6. leetcode 3. Longest Substring Without Repeating Characters | 3. 无重复字符的最长子串(双指针+滑窗)

    题目 https://leetcode.com/problems/longest-substring-without-repeating-characters/ 题解 双指针+滑窗,维护一个 set, ...

  7. LeetCode 925 Long Pressed Name

    LeetCode 925 Long Pressed Name 题目链接 Your friend is typing his name into a keyboard. Sometimes, when ...

  8. [英雄星球六月集训LeetCode解题日报] 第五日 双指针

    [英雄星球六月集训LeetCode解题日报] 第五日 双指针 一. 2000. 反转单词前缀 1. 题目描述 2. 思路分析 3. 代码实现 二. 917. 仅仅反转字母 1. 题目描述 2. 思路分 ...

  9. Leetcode每日一题:925.Long Pressed Name(长按键入)

    大致意思就是typed对应位置上的相同字符数要大于等于name对应位置上的字符 思路:双指针遍历,每次都找出对应位置上字符的个数,再比较即可,注意不要忘了typed字符串过长的问题: bool isL ...

最新文章

  1. matlab画多个垂直的线段,新手求助,图形最后多出一条垂直线
  2. flash写保护原理_STM32系统中的2种数据掉电保护方法!
  3. python文本数据增强_CVPR2020场景文字数据增强(纯python实现)
  4. QWidget子窗口中setStyleSheet无效,解决方法
  5. JSP标签JSTL(4)--URL
  6. 1185 城市名排序
  7. 牌组资源英语_「桌游推荐」如果当年有这种能背单词的桌游,我早就成英语学霸了...
  8. 为什么黑客都用python-终于发现为什么黑客都用python
  9. setting-mirrorO以及下载jar包流程简介
  10. 笔记:常见TCP端口号
  11. libcurl - curl_easy_getinfo - 从 curl 句柄中提取信息 - 可用信息
  12. 2021内职班的高考成绩怎么查询,2021山西地区高考查分时间
  13. docker oxidized时区问题,时间显示不是北京时间问题的解决办法
  14. 为什么我的程序中没有stdafx.h头文件?
  15. python前戏之量
  16. 微软任命 CEO 萨提亚·纳德拉为董事会主席
  17. gdb x命令_Coresight及GDB使用介绍 - 大海在倾听
  18. Handlebars的使用方法文档整理(Handlebars.js)
  19. 他是“中国第一程序员”,一人之力单挑微软!
  20. 2022-2027年中国互联网+长租公寓市场规模预测及投资战略咨询报告

热门文章

  1. java流类图结构_java学习之IO流(学习之旅,一)
  2. citespace安装如何配置JAVA_citespace超详细安装教程
  3. nmcli 命令的基本使用
  4. Spring MVC 使用介绍(二)—— DispatcherServlet
  5. 超乎想象,数据揭示自学成才的码农为何备受青睐
  6. 算法题之求二叉树的最大距离
  7. struts2中一些常用的写法 记录
  8. [Codeforces673A]Bear and Game(水题,思路)
  9. HDU4859 海岸线(最小割)
  10. LAMP环境安装与apache配置