标签:字符 name 示例 typed 925 按键 true leetcode 输入
题目描述:
你的朋友正在使用键盘输入他的名字 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
的字符都是小写字母。
思路:如示例3,当name和typed遇到相同且重复的字符时,先尝试同时向后移动,若不可以再尝试把typed向后移动。
class Solution { public: bool isLongPressedName(string name, string typed) { int i,j; for(i = 0,j=0;i<name.size();i++,j++) { if(name[i] == typed[j]) { while(name[i]==name[i+1] ) { if(typed[j]==typed[j+1]) { i++; j++; } else return false; } while(typed[j] == typed[j+1]) { j++; } }else return false; } bool ans; if(i == name.size()) { ans = true; }else ans = false; return ans; } };
题目链接:https://leetcode-cn.com/problems/long-pressed-name/
标签:字符,name,示例,typed,925,按键,true,leetcode,输入 来源: https://www.cnblogs.com/hdyss/p/10800653.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。