1528 重新排列字串(模擬)
阿新 • • 發佈:2020-12-29
技術標籤:力扣
1. 問題描述:
給你一個字串 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]
解釋:重新排列後,每個字元都還留在原來的位置上。
示例 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"
提示:
s.length == indices.length == n
s 僅包含小寫英文字母。
0 <= indices[i] <n
indices 的所有的值都是唯一的(也就是說,indices 是整數 0 到 n - 1 形成的一組排列)。
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/shuffle-string
2. 思路分析:
分析題目可以知道我們只需要將當前的字元放在指定的位置即可,因為使用的是python語言,所以在一開始的時候可以宣告長度為n的字串列表res,這樣可以通過下標修改列表中的值,在for迴圈中遍歷字串s,對於當前的字元放在res列表的指定位置即可
3. 程式碼如下:
from typing import List
class Solution:
def restoreString(self, s: str, indices: List[int]) -> str:
# 宣告列表的原因是列表是可以進行修改的
res = [""] * len(s)
for i in range(len(s)):
res[indices[i]] = s[i]
# 通過join方法將字串列表的元素連線為字串
return "".join(res)