文章目录

  • 题目
    • 题目详情
    • 示例
  • 解题思路
    • 思路
    • 代码
    • 运行结果
    • 最佳方案

题目

题目详情

你的朋友正在使用键盘输入他的名字 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
解释:长按名字中的字符并不是必要的。

解题思路

思路

  1. 首先想到运用两个指针一起遍历,各一个指针
  2. name[i] 与 typed[j] 相同时,同时后移,不相同时,判断 typed[i-1] 是否与 typed[j] 相同(和前一个比较字符比较是否重复了),相同则将j 后移,不相同返回false

代码

class Solution:def isLongPressedName(self,nums1,nums2):i,j =0,0while i<len(nums1) and j<len(nums2):    #直到某个字符串遍历完成if nums1[i] == nums2[j]:         i += 1j += 1elif nums1[i-1] == nums2[j] and i>0:  #后一个可能与前一个相同j += 1else:return Falseif  nums1[-1] == nums2[-1]:        return Trueelse:return Falseif __name__ == "__main__":obj = Solution()a="alex"b="aaleex"obj.isLongPressedName(a,b)   #输出True

运行结果

最佳方案

36ms

class Solution:def isLongPressedName(self, name: str, typed: str) -> bool:m, n = len(name), len(typed)if m > n:return Falseif name[0] != typed[0]:return Falsei, j = 1, 1while i < m and j < n:if name[i] == typed[j]:i += 1j += 1else:if typed[j] != name[i-1]:return Falsewhile j < n:if typed[j] == name[i-1]:j += 1else:breakreturn i == m

leetcode--长按键入--python相关推荐

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

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

  2. leetcode哈希表(python与c++)

    1.整数转罗马数字 python: class Solution:def intToRoman(self, num: int) -> str:dict_ = {1000:'M', 900:'CM ...

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

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

  4. LeetCode 其他部分 简单 Python实现

    #LeetCode 其他部分 简单 Python实现 ''' 位1的个数 编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量).示例 : 输入: 11 ...

  5. PDF转图片再转长图、python、pil

    PDF转图片再转长图.python.pil 直接贴代码 运行环境 直接贴代码 # -*- coding: utf-8 -*- """ 1.安装库pip install p ...

  6. 《看聊天记录都学不会Python到游戏实战?太菜了吧》(9)集万家之长不死 python

    本系列文章将会以通俗易懂的对话方式进行教学,对话中将涵盖了新手在学习中的一般问题.此系列将会持续更新,包括别的语言以及实战都将使用对话的方式进行教学,基础编程语言教学适用于零基础小白,之后实战课程也将 ...

  7. LeetCode简单题之长按键入

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

  8. LeetCode 925. 长按键入(双指针)

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

  9. leetcode 925. 长按键入

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

  10. LeetCode题解(0594):计算最长和谐子序列(Python)

    题目:原题链接(简单) 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(N)O(N)O(N) O(N)O(N)O(N) 368ms (91.63%) Ans 2 (Pytho ...

最新文章

  1. Android开发之如何保证Service不被杀掉(broadcast+system/app)
  2. Swift 泛型函数补充
  3. mysql ef vs
  4. TensorFlow各版本下载地址,强烈推荐
  5. leetcode算法题--Jump Game II
  6. 网络管理员在预先分配和识别作为_14个网络管理员必备的最佳网络流量分析工具,收藏了...
  7. Spring Cloud(五) Zuul Filter
  8. SAP连接外部ORACLE数据库
  9. 直播报名 | 大牛教你哔哩哔哩、亚马逊跨境电商用户画像实战真经
  10. 陶哲轩实分析命题 11.10.7
  11. 专精开发还是转管理?程序员的职业规划选择,没有想象中那么难
  12. python opengl 截图_初试PyOpenGL二 (Python+OpenGL)基本地形生成与高度检测
  13. 吐槽:Lambda表达式
  14. 剑指OFFER之包含min函数的栈(九度OJ1522)
  15. 【优化求解】基于matlab遗传算法求解函数极值问题【含Matlab源码 1198期】
  16. 机器学习-DBSCAN密度聚类
  17. MySQL 计算年龄
  18. 多线程——保证线程安全
  19. MIT5K数据集的使用
  20. Nim 游戏和 SG 函数

热门文章

  1. php.ini 中开启短标签
  2. 如何删除mac通用二进制文件
  3. Java数据结构与算法(第四章栈和队列)
  4. snmp在企业网中的应用
  5. POJ-1753 Flip Game 枚举 状态压缩
  6. [转]控制 Cookie 的作用范围
  7. 本地Yum仓库搭建部署
  8. 《C陷阱与缺陷》一导读
  9. oracle initialization or shutdown in progress解决方法
  10. 脚本SFTP定时取Linux服务器文件