你的朋友正在使用鍵盤輸入他的名字 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
解:
def isLongPressedName(self, name: str, typed: str) -> bool:
name_l = len(name)
t_l = len(typed)
if name_l >= t_l and name != typed:
return False
index = 0
for i in range(len(typed)):
# print(i, typed[i], index, name[index])
if index == name_l:
if len(set(typed[i-1:])) == 1:
return True
else:
return False
if typed[i] == name[index]:
index += 1
else:
if i and typed[i] == typed[i-1]:
continue
else:
return False
if index == name_l:
return True
else:
return False
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/257470.html
標籤:python
