We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。
你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回 True。
输入:name = "alex", typed = "aaleex" 输出:true 解释:'alex' 中的 'a' 和 'e' 被长按。
输入:name = "saeed", typed = "ssaaedd" 输出:false 解释:'e' 一定需要被键入两次,但在 typed 的输出中不是这样。
输入:name = "leelee", typed = "lleeelee" 输出:true
输入:name = "laiden", typed = "laiden" 输出:true 解释:长按名字中的字符并不是必要的。
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/long-pressed-name
The text was updated successfully, but these errors were encountered:
第一眼看上去就是双指针,两个指针从字符串头开始。
func isLongPressedName(name string, typed string) bool { // 用一个变量来保存typed字符串的上一个字符 var pre byte i, j := 0, 0 for i < len(name) && j < len(typed) { // 如果当前两个指针指向的字符相同,继续遍历即可 if name[i] == typed[j] { pre = typed[j] i++ j++ continue // 如果当前两个指针指向的字符不同,但是j指针指向的字符和pre相同,说明是长按键入的 } else if name[i] != typed[j] && typed[j] == pre { j++ continue } else { return false } } // 遍历完了,但是i指针却小于len(name),说明j遍历完了,i还没有指向结尾,返回false if i < len(name) { return false } for j < len(typed) { if typed[j] != pre { return false } j++ } return true }
Sorry, something went wrong.
No branches or pull requests
你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。
你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回 True。
示例 1:
示例 2:
示例 3:
示例 4:
提示:
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/long-pressed-name
The text was updated successfully, but these errors were encountered: