力扣 1528 重新排列字串問題

2021-10-21 20:15:59 字數 1388 閱讀 5187

給你乙個字串 s 和乙個 長度相同 的整數陣列 indices 。

請你重新排列字串 s ,其中第 i 個字元需要移動到 indices[i] 指示的位置。

返回重新排列後的字串。

示例 1:

輸入:s = 「codeleet」, indices = [4,5,6,7,0,2,1,3]

輸出:「leetcode」

解釋:如圖所示,「codeleet」 重新排列後變為 「leetcode」 。

示例 2:

輸入:s = 「abc」, indices = [0,1,2]

輸出:「abc」

解釋:重新排列後,每個字元都還留在原來的位置上。

示例 3:

輸入:s = 「aiohn」, indices = [3,1,4,2,0]

輸出:「nihao」

示例 4:

輸入:s = 「aaiougrt」, indices = [4,0,2,6,7,3,1,5]

輸出:「arigatou」

示例 5:

輸入:s = 「art」, indices = [1,0,2]

輸出:「rat」

起初我第一眼就是我就想到使用map來建立聯絡,因為map還會自動將key排序,所以我們使用字元對應的下標做key,字元做value

string restorestring

(string s, vector<

int>

& indices)

for(

auto it=mp.

begin()

;it!=mp.

end(

);it++

)return t;

}

於是開始優化一下為什麼不直接使用桶直接存放字元,所以改進了一下,使用vector就可以了

string restorestring

(string s, vector<

int>

& indices)

for(

int i=

0;i)return t;

}

我們發現因為最後輸出是string,不可避免再一次遍歷將字元插入string中,其實在c++,string也是乙個類似vector的容器,所以我們可以直接使用string,宣告string的長度

string restorestring

(string s, vector<

int>

& indices)

return t;

}

leetcode題目1528 重新排列字串

給你乙個字串 s 和乙個 長度相同 的整數陣列 indices 請你重新排列字串 s 其中第 i 個字元需要移動到 indices i 指示的位置。返回重新排列後的字串。示例 1 輸入 s codeleet indices 4,5,6,7,0,2,1,3 輸出 leetcode 解釋 如圖所示,co...

01 22 力扣題目 重新排列字串

給你乙個字串 s 和乙個 長度相同 的整數陣列 indices 請你重新排列字串 s 其中第 i 個字元需要移動到 indices i 指示的位置。返回重新排列後的字串。首先建立乙個字元陣列,長度就是字串s的長度,然後遍歷陣列indices,將字串s中的字元,按照indices中的下標來依次存放字串...

字串重新排列

題目 對乙個字串重新排列,字母排在前面,數字排在後面,並不改變原來字母之間以及數字之間的字元順序。如 wjhg1451wet030 wjhgwet1451030 我們暫不考慮這些字串中有其他非法字元,只考慮該字串只有字母和數字組成。需要注意 字母分大小寫,需要體現出來。如下 對乙個字串重新排列,字母...