題目連結:
題目意譯:
你被給定一個索引值從 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 的字元還是放空白。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。