LeetCode 925. 长按键入(双指针)
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. 长按键入(双指针)相关推荐
- leetcode 925. 长按键入
题目描述: 你的朋友正在使用键盘输入他的名字 name.偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次. 你将会检查键盘输入的字符 typed.如果它对应的可能是你的朋友的 ...
- 2022-2-9 Leetcode 925.长按键入
第一反应用哈希表,但是不行 class Solution {public:bool isLongPressedName(string name, string typed) {if(name.size ...
- 台安变频器n2按键说明_力扣 925. 长按键入
925. 长按键入 题目描述 你的朋友正在使用键盘输入他的名字 name.偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次. 你将会检查键盘输入的字符 typed.如果它对应 ...
- Leetcode:925. 长按键入
bool isLongPressedName(char * name, char * typed){int n=strlen(name),t=strlen(typed);int i=0,j=0;whi ...
- 有效的括号长按键入验证外星语词典字符的最短距离用栈实现队列
有效的括号 来源:杭哥 20. 有效的括号 - 力扣(LeetCode) bool isValid(char * s) {int sz=strlen(s);char stack[sz];int k=0 ...
- leetcode 3. Longest Substring Without Repeating Characters | 3. 无重复字符的最长子串(双指针+滑窗)
题目 https://leetcode.com/problems/longest-substring-without-repeating-characters/ 题解 双指针+滑窗,维护一个 set, ...
- LeetCode 925 Long Pressed Name
LeetCode 925 Long Pressed Name 题目链接 Your friend is typing his name into a keyboard. Sometimes, when ...
- [英雄星球六月集训LeetCode解题日报] 第五日 双指针
[英雄星球六月集训LeetCode解题日报] 第五日 双指针 一. 2000. 反转单词前缀 1. 题目描述 2. 思路分析 3. 代码实现 二. 917. 仅仅反转字母 1. 题目描述 2. 思路分 ...
- Leetcode每日一题:925.Long Pressed Name(长按键入)
大致意思就是typed对应位置上的相同字符数要大于等于name对应位置上的字符 思路:双指针遍历,每次都找出对应位置上字符的个数,再比较即可,注意不要忘了typed字符串过长的问题: bool isL ...
最新文章
- matlab画多个垂直的线段,新手求助,图形最后多出一条垂直线
- flash写保护原理_STM32系统中的2种数据掉电保护方法!
- python文本数据增强_CVPR2020场景文字数据增强(纯python实现)
- QWidget子窗口中setStyleSheet无效,解决方法
- JSP标签JSTL(4)--URL
- 1185 城市名排序
- 牌组资源英语_「桌游推荐」如果当年有这种能背单词的桌游,我早就成英语学霸了...
- 为什么黑客都用python-终于发现为什么黑客都用python
- setting-mirrorO以及下载jar包流程简介
- 笔记:常见TCP端口号
- libcurl - curl_easy_getinfo - 从 curl 句柄中提取信息 - 可用信息
- 2021内职班的高考成绩怎么查询,2021山西地区高考查分时间
- docker oxidized时区问题,时间显示不是北京时间问题的解决办法
- 为什么我的程序中没有stdafx.h头文件?
- python前戏之量
- 微软任命 CEO 萨提亚·纳德拉为董事会主席
- gdb x命令_Coresight及GDB使用介绍 - 大海在倾听
- Handlebars的使用方法文档整理(Handlebars.js)
- 他是“中国第一程序员”,一人之力单挑微软!
- 2022-2027年中国互联网+长租公寓市场规模预测及投资战略咨询报告