字串 簡單 925 長按鍵入

2021-10-19 18:02:59 字數 1765 閱讀 3953

【題目】

你的朋友正在使用鍵盤輸入他的名字 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 的字元都是小寫字母。

【**】

【python】

執行用時:

48 ms, 在所有 python3 提交中擊敗了17.07%的使用者

記憶體消耗:

15 mb, 在所有 python3 提交中擊敗了9.75%的使用者

class

solution

:def

islongpressedname

(self, name:

str, typed:

str)

->

bool

: name+=

"1" first=name[0]

name_char,name_cnt,typed_char,typed_cnt,cnt=

,,,[

],0for c in name:

if c==first:

cnt+=

1else

: cnt=

1 first=c

first,cnt=typed[0]

,0typed+=

'1'for c in typed:

if c==first:

cnt+=

1else

: cnt=

1 first=c

#資料準備完畢

name=name[:-

1]typed=typed[:-

1]iflen

(typed_char)

!=len

(name_char)

:return

false

else

: l=

len(typed_char)

for i in

range

(l):

if name_cnt[i]

>typed_cnt[i]

or name_char[i]

!=typed_char[i]

:return

false

return

true

925 長按鍵入

解題思路 1.在typed中查詢name中的字元,分別遍歷兩個字串,如果在typed中有name中的字元,則flag true,並迴圈查詢直到遇到與當前name中的字元不相等的字元,此時的計數器為num2 2.迴圈遍歷name中的字元,直到遇到前後兩個字元不相等的字元,則開始下一輪遍歷,記錄name...

925 長按鍵入

你的朋友正在使用鍵盤輸入他的名字name。偶爾,在鍵入字元c時,按鍵可能會被長按,而字元可能會被輸入1次或多次。檢查鍵盤輸入的字元typed,如果它對應的可能是你的朋友的名字 其中一些字元可能會被長按 那麼就返回true。思路 該題使用了雙指標的思想。考慮題意是某個字元可以長按而不是可以按錯字元,出...

925 長按鍵入

你的朋友正在使用鍵盤輸入他的名字 name。偶爾,在鍵入字元 c 時,按鍵可能會被長按,而字元可能被輸入 1 次或多次。你將會檢查鍵盤輸入的字元 typed。如果它對應的可能是你的朋友的名字 其中一些字元可能被長按 那麼就返回 true。示例 1 輸入 name alex typed aaleex ...