摘要:前言的第一題長按鍵入你的朋友正在使用鍵盤輸入他的名字。偶爾,在鍵入字符時,按鍵可能會被長按,而字符可能被輸入次或多次。示例輸入輸出解釋中的和被長按。
前言
Weekly Contest 107的第一題長按鍵入:
解題思路你的朋友正在使用鍵盤輸入他的名字 name。偶爾,在鍵入字符 c 時,按鍵可能會被長按,而字符可能被輸入 1 次或多次。
你將會檢查鍵盤輸入的字符 typed。如果它對應(yīng)的可能是你的朋友的名字(其中一些字符可能被長按),那么就返回 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 的字符都是小寫字母。
這道題我是先使用了一個壓縮算法把字符串進(jìn)行壓縮后再對比,這個壓縮算法就是參考游程編碼。而且在LeetCode上也有對應(yīng)的題目,如443. 壓縮字符串。而我的專欄中也有相關(guān)算法的文章900-RLE 迭代器。這個算法處理后,會將字符串壓縮到一個數(shù)組中,該數(shù)組的偶數(shù)位索引對應(yīng)的值為字符,奇數(shù)位索引對應(yīng)的值為該字符重復(fù)出現(xiàn)的次數(shù)。
后續(xù)只需要判斷對應(yīng)位置的字符是否相等以及出現(xiàn)次數(shù)即可。
/** * 925. 長按鍵入 * @param name * @param typed * @return */ public boolean isLongPressedName(String name, String typed) { boolean result=true; if(typed.length()>=name.length()){//輸入字符串的長度必須不小于原字符串 Listnames=compress(name); List typeds=compress(typed); if(names.size()==typeds.size()){//壓縮后的數(shù)組長度必須一致 for(int i=0;i<=names.size()-2;i=i+2){ if(names.get(i).equals(typeds.get(i))){ int nameTimes=Integer.valueOf(names.get(i+1)); int typedTimes=Integer.valueOf(typeds.get(i+1)); if(typedTimes compress(String str){ List result=new ArrayList<>(); char currentChar = 0; int currentIndex=0; for(int i=0;i
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/71773.html
前端LeetCode刷題 下面是已刷的題目的目錄。GitHub:https://github.com/cunzaizhuy...每日打卡更新中,歡迎關(guān)注。 數(shù)組類 26 刪除排序數(shù)組中的重復(fù)項 27 移除元素 35 搜索插入位置 66 加1 80 medium 刪除排序數(shù)組中的重復(fù)項2 88 合并兩個有序數(shù)組 167 兩數(shù)之和II - 輸入有序數(shù)組 118 楊輝三角 169 easy 求眾數(shù) 1...
摘要:當(dāng)溫度感應(yīng)器感應(yīng)到設(shè)備主體內(nèi)部的溫度高于設(shè)定值時,此時溫度設(shè)定器會控制風(fēng)機(jī)進(jìn)行啟動,對內(nèi)部進(jìn)行散熱處理,低于設(shè)定值時停止。設(shè)定的時間間隔溫度閾值,當(dāng)前溫度由顯示,表示工作狀態(tài)。為繼電器,,,供電。必須手動清除,否則將持續(xù)引發(fā)中斷。 目錄 一、 設(shè)計要求 二、 總體設(shè)計和系統(tǒng)框圖 三、設(shè)計...
摘要:那該如何是好原題給出思路是讓事件負(fù)責(zé)標(biāo)記按鍵就好了,而方向鍵的事件處理使用設(shè)個周期比較小的定時器持續(xù)監(jiān)聽,由于周期小,長按時就會立刻執(zhí)行相應(yīng)的事件處理,效果更加流暢。閃爍實現(xiàn)效果閃爍簡單的一個定時器應(yīng)用,用或都可以實現(xiàn)。 0x1模擬select控件 實現(xiàn)效果:5-01模擬select控件 比較簡單的點擊事件處理,也就處理點擊選擇框展示菜單、點擊菜單選擇、點擊頁面任意角落隱藏菜單這三件事...
摘要:用腳本甲骨文免費獲取自動腳本代碼甲骨文自動搶購腳本代碼寶塔面板刷甲骨文甲骨文自動搶購腳本利用寶塔面板按鍵精靈刷下載下載后,直接點擊運行即可。前面的教程都是用腳本,可能對于 很多童鞋來說,會有點門檻,如果你至今還不知道如何去刷arm,那么可以看看今天的這篇水文:用KeymouseGo(按鍵精靈)刷ARM云服務(wù)器。 按鍵精靈的缺點,費電,不能關(guān)電腦,耗時耗力。優(yōu)點,可能你會覺得很安全,不會...
摘要:嵌入式實時操作系統(tǒng)是一個特殊的程序通常稱為內(nèi)核,它可以創(chuàng)建,銷毀,控制所有任務(wù)。顯示處理函數(shù)運行過程中,定時器產(chǎn)生中斷,系統(tǒng)進(jìn)入定時器中斷程序?qū)鞲衅鳂?biāo)志位置。實時操作系的子系統(tǒng)將再后續(xù)持續(xù)更新。 ...
閱讀 1658·2021-08-13 15:03
閱讀 2089·2019-08-30 15:54
閱讀 3549·2019-08-26 10:30
閱讀 1025·2019-08-26 10:22
閱讀 2752·2019-08-23 14:42
閱讀 1813·2019-08-22 11:16
閱讀 1045·2019-08-21 18:33
閱讀 3167·2019-08-21 17:28