小白學習[leetcode]之925長按鍵入
題目的連結在這裡:
https://leetcode-cn.com/problems/long-pressed-name/
題目大意
你的朋友正在使用鍵盤輸入他的名字 name。偶爾,在鍵入字元 c 時,按鍵可能會被長按,而字元可能被輸入 1 次或多次。你將會檢查鍵盤輸入的字元 typed。如果它對應的可能是你的朋友的名字(其中一些字元可能被長按),那麼就返回 True。
一、示意圖
二、解題思路
使用Java來寫
程式碼如下:
class Solution {
public boolean isLongPressedName(String name, String typed) {
//按照網上的解析,用的雙指標
int len_n=name.length();
int len_t=typed.length();
//先排除極端情況,如果輸入的值都比最終值要小,肯定不會
if(len_n>len_t){
return false;
}
//然後開始雙指標
int i=0,j=0;
while(i<len_n&&j<len_t){
//開始指向,如果他們是一樣的話,就一起向前
if(name.charAt(i)==typed.charAt(j)){
i++;
j++;
}
//如果出現不一樣的,但是有一種特殊情況,也就是重樣的時候比如:alex 和aaleex這樣,直接看j是不是等於前面的一個
else if(j>0&&typed.charAt(j)==typed.charAt(j-1)){
j++;
}
//其他情況下,都直接返回
else{
return false;
}
}
//跳出迴圈還需要做一些優化
while(j<len_t){
if(typed.charAt(j)!=typed.charAt(j-1))
return false;
j++;
}
return i ==len_n;
}
}
相關文章
- Leetcode每日一題:925Long Pressed Name(長按鍵入)LeetCode每日一題
- 小白入門學習打日誌
- 三行程式碼按鍵消抖 獨立按鍵 矩陣按鍵 長按 短按 雙擊行程矩陣
- less學習之Bootstrap(按鈕篇)boot
- Python入門_給小白的學習指南Python
- 【小白必看】Python入門知識之常用關鍵字!Python
- 小白如何學習大資料?需要多長時間大資料
- 機器學習之小白入門機器學習
- 小白學習大資料測試之hadoop大資料Hadoop
- Java入門學習手冊之Eclipse常用快捷鍵彙總JavaEclipse
- Linux 按鍵輸入實驗Linux
- 戴爾進入bios按什麼鍵 戴爾重灌系統按什麼鍵iOS
- ES6學習之關鍵字
- LeetCode 3014[輸入單詞需要的最少按鍵次數I]LeetCode
- 小白學集合之List介面
- 非常適合小白入門的Python學習路線Python
- 【mybatis學習之入門(一)】MyBatis
- 深入學習js之——引數按值傳遞#9JS
- JUnit5學習之四:按條件執行
- Python 3 學習筆記之——鍵盤輸入和讀寫檔案Python筆記
- win10輸入法按鍵設定在哪裡_win10輸入法按鍵設定方法Win10
- 最新軟體測試學習資源(小白入門到精通)
- 小白 C++ 入門併發瘋學習路線(書單)C++
- 非常適合小白入門的Go語言學習路線Go
- Python學習之pycharm的快捷鍵大全PythonPyCharm
- 小白學習如何打日誌
- 小白學習Vue(一)Vue教程Vue
- Leetcode學習LeetCode
- Web 前端開發之小白入門Web前端
- MySQL入門學習之——innodb lockMySql
- 程式設計小白用Python刷LeetCode學習筆記——前100題程式設計PythonLeetCode筆記
- 小白入門學習Python,值得你重視的那些事兒Python
- 【LeetCode】如何學習LeetCode?LeetCode
- 小白剛入門Python,學完基礎後,接下來的學習步驟!Python
- Mac按鍵Mac
- 小白如何學習作業系統?作業系統
- python 裝飾器小白學習Python
- 關於處理按鍵長按不用onKeyLongPress的另一種解決方案