2000. Reverse Prefix of Word (反轉單詞前綴)

更新於 發佈於 閱讀時間約 2 分鐘


英文版點我中文版點我


↑看個小廣告,支持好內容↑



從題意可以了解:不論 ch 出現多少遍,要反轉的都是它首次出現前的那些字母,顯然第一次出現的位置就很關鍵了。


❶ indexOf

拆成兩個任務來辦,首先找出第一次發現 ch 的位置,再針對範圍去做 reverse:

1. index=word.indexOf(ch)

2. 判斷是否需反轉
 - 當 i<=index:res=word[i​]+res (要反轉,從頭寫入)
 - 當 i> index:res=res+word[i] (不反轉,從尾寫入)


別忘了,這是建立在有找到 ch 的狀況下。如果都沒有出現,要輸出原字串,可別傻傻把整個字串反轉了。


+reverse()

可能有的人會想到 reverse,但那個是陣列的方法,要用的話得轉型別:

// 反轉 word[0]~word[index]​
word.substr(0, index+1).split("").reverse().join("")


❷ Flag

上述的解法要說美中不足,就是 indexOf 會多遍歷一次陣列 O(2n),能不能只跑一次就完成反轉呢?

我們可以設立一個 Flag 標示是否已找到 ch,依此來決定反轉字元與否。要是到最後都還沒找到,這個標記也能提醒我們該輸出原字串:

var reversePrefix = function(word, ch) {
let find=false;
let res="";

for(let i=0; i<word.length; i++){
if(!find){
res=word[i]+res;
if(word[i]==ch){find=true};
}else{
res=res+word[i];
}
}
// 如果還沒找到,就輸出原字串
return !find? word: res;
};



  • 本題分類標籤:Two PointersString
  • 本題正解率=86.1%

❤️ 若內容對你實用,歡迎追蹤本專題,或小額贊助支持~
⭐ 這是我的第 23 篇刷題筆記,完整解題索引看這裡 → Here


avatar-img
54會員
59內容數
我要成為 LeetCode 王!快跟我一起踏上旅程!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
LeetCode King 的其他內容
千萬不要傻傻乘開啦,這題有好幾種優雅的做法~
索引很好用,但一定要做索引才能解決計數問題嗎?超車對手的機會來了!
這道題你一定會解,但你知道怎麼把迴圈改寫成「迭代」嗎?這招學起來!
一串數字能夠組成等差數列嗎?有沒有不排列就能判斷的方法?
千萬不要傻傻乘開啦,這題有好幾種優雅的做法~
索引很好用,但一定要做索引才能解決計數問題嗎?超車對手的機會來了!
這道題你一定會解,但你知道怎麼把迴圈改寫成「迭代」嗎?這招學起來!
一串數字能夠組成等差數列嗎?有沒有不排列就能判斷的方法?
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
題目敘述 題目會給我們一個字串s作為輸入,要求我們以white space空白為切割符號,切割出每個單字,並且反轉其順序後,以字串形式最為最後的輸出。 題目的原文敘述 測試範例 Example 1: Input: s = "the sky is blue" Output: "blue i
Thumbnail
題目敘述 題目會給定我們一個字串s,要求我們反轉字串s中所有母音字元的順序,並且以字串的形式輸出。 註: 母音字元為a, e, i, o, u 或者 A, E, I, O, U 題目的原文敘述 測試範例 Example 1: Input: s = "hello" Output: "ho
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
題目敘述 題目會給我們一個字串s作為輸入,要求我們以white space空白為切割符號,切割出每個單字,並且反轉其順序後,以字串形式最為最後的輸出。 題目的原文敘述 測試範例 Example 1: Input: s = "the sky is blue" Output: "blue i
Thumbnail
題目敘述 題目會給定我們一個字串s,要求我們反轉字串s中所有母音字元的順序,並且以字串的形式輸出。 註: 母音字元為a, e, i, o, u 或者 A, E, I, O, U 題目的原文敘述 測試範例 Example 1: Input: s = "hello" Output: "ho