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