前往
大廳
主題

LeetCode - 2109. Adding Spaces to a String 解題心得

Not In My Back Yard | 2022-06-11 12:00:01 | 巴幣 0 | 人氣 105

題目連結:


題目意譯:
你被給定一個索引值從 0 開始的字串 s 以及一個索引值從 0 開始之整數陣列 spaces,其描述著原始字串中要加入的字串之索引值。每個空白應插入於位於給定索引值的字元之前。

例如,給定 s = "EnjoyYourCoffee" 以及 spaces = [5, 9],我們會在 'Y' 和 'C' 之前放置空白,其中依序位於索引值 5 和 9。因此,我們得到 "Enjoy Your Coffee"。

回傳加入空白之修改後的字串。

限制:
1 ≦ s.length ≦ 3 × 10 ^ 5
s 只由小寫或是大寫英文字母組成。
1 ≦ spaces.length ≦ 3 × 10 ^ 5
0 ≦ spaces[i] ≦ s.length - 1
所有 spaces 中的數值嚴格遞增。



範例測資:
範例 1:
輸入: s = "LeetcodeHelpsMeLearn", spaces = [8,13,15]
輸出: "Leetcode Helps Me Learn"
解釋:
索引值 8 、 13 和 15 對應著 "LeetcodeHelpsMeLearn" 中劃著底線的字元。
我們接著在這些字元之前放置空白。

範例 2:
輸入: s = "icodeinpython", spaces = [1,5,7,9]
輸出: "i code in py thon"
解釋:
索引值 1 、 5 、 7 和 9 對應著 "icodeinpython" 中劃著底線的字元。
我們接著在這些字元之前放置空白。

範例 3:
輸入: s = "spacing", spaces = [0,1,2,3,4,5,6]
輸出: " s p a c i n g"
解釋:
我們也同樣可以在字串的第一個字元之前放置空白。


解題思維:
我們可以預先宣告一個足夠大的字串 s',即大小為 s.length + spaces.length。接著用兩個指標來依序掃過 spaces 和 s 來判斷 s' 對應位置要放 s 的字元還是放空白。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作