給你乙個字串 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」
解法1:空間換時間
public static string restorestring(string s, int indices)
return string.valueof(result);
}
因為增加了result 作為儲存返回,讓記憶體增大,但是執行僅需要一次for迴圈。
可以優化為:
public static string restorestring3(string s, int indices)
return string.valueof(result);
}
減少記憶體消耗,並且不改變for執行次數。
解法2:時間換空間
public static string restorestring2(string s, int indices)
for (int i = 0; i < s.length(); i++)
return string.valueof(chars);
}
通過使用map的唯一key,來作為重新排序的方式,有兩次for迴圈,但是通過leetcode的提交結果來看,反而記憶體比上面兩種更少。
我也解釋不了,如果有懂的同學,煩請能指教一下。
Jobdu 題目1528 最長回文子串
題目描述 回文串就是乙個正讀和反讀都一樣的字串,比如 level 或者 noon 等等就是回文串。回文子串,顧名思義,即字串中滿足回文性質的子串。給出乙個只由小寫英文本元a,b,c.x,y,z組成的字串,請輸出其中最長的回文子串的長度。輸入 輸入包含多個測試用例,每組測試用例輸入一行由小寫英文本元a...
Jobdu 題目1528 最長回文子串
題目描述 回文串就是乙個正讀和反讀都一樣的字串,比如 level 或者 noon 等等就是回文串。回文子串,顧名思義,即字串中滿足回文性質的子串。給出乙個只由小寫英文本元a,b,c.x,y,z組成的字串,請輸出其中最長的回文子串的長度。輸入 輸入包含多個測試用例,每組測試用例輸入一行由小寫英文本元a...
leetcode 排序題目
merge k sorted lists insertion sort list sort list first missing positive sort colors 147.insertion sort list sort a linked list using insertion sort....