從 s 中選出 最小 的字元,將它 接在 結果字串的後面。
從 s 剩餘字元中選出 最小 的字元,且該字元比上乙個新增的字元大,將它 接在 結果字串後面。
重複步驟 2 ,直到你沒法從 s 中選擇字元。
從 s 中選出 最大 的字元,將它 接在 結果字串的後面。
從 s 剩餘字元中選出 最大 的字元,且該字元比上乙個新增的字元小,將它 接在 結果字串後面。
重複步驟 5 ,直到你沒法從 s 中選擇字元。
重複步驟 1 到 6 ,直到 s 中所有字元都已經被選過。
在任何一步中,如果最小或者最大字元不止乙個 ,你可以選擇其中任意乙個,並將其新增到結果字串。
示例 1:
輸入:s =
"aaaabbbbcccc"
輸出:"abccbaabccba"
解釋:第一輪的步驟 1,2,3 後,結果字串為 result =
"abc"
第一輪的步驟 4,5,6 後,結果字串為 result =
"abccba"
第一輪結束,現在 s =
"aabbcc" ,我們再次回到步驟 1
第二輪的步驟 1,2,3 後,結果字串為 result =
"abccbaabc"
第二輪的步驟 4,5,6 後,結果字串為 result =
"abccbaabccba"
示例 2:
輸入:s =
"rat"
輸出:"art"
解釋:單詞 "rat" 在上述演算法重排序以後變成 "art"
示例 3:
輸入:s =
"leetcode"
輸出:"cdelotee"
示例 4:
輸入:s =
"ggggggg"
輸出:"ggggggg"
示例 5:
輸入:s =
"spo"
輸出:"ops"
1
<= s.length <=
500s 只包含小寫英文本母。
class
solution
stringbuilder builder =
newstringbuilder()
;while
(builder.
length()
< s.
length()
)}for(
int i =
25; i >=
0; i--)}
}return builder.
tostring()
;}}
用時
記憶體擊敗98.12%
擊敗63.62%
LeetCode擊敗99 猜數字大小
每輪遊戲,我都會從 1 到 n 隨機選擇乙個數字。請你猜選出的是哪個數字。如果你猜錯了,我會告訴你,你猜測的數字比我選出的數字是大了還是小了。你可以通過呼叫乙個預先定義好的介面 int guess int num 來獲取猜測結果,返回值一共有 3 種可能的情況 1,1 或 0 1 我選出的數字比你猜...
LeetCode擊敗99 逆序列印不可變鍊錶
這道題是非常經典,而且比較簡單的遞迴。這道題在leetcode是vip題,中級。題目中需要呼叫內部介面,所以讀者可能比較不好測試。但是這道題包含的遞迴思想非常經典且簡介,不妨感受一下。immutablelistnode.printvalue 列印當前節點的值。immutablelistnode.ge...
leetcode 75 顏色分類 擊敗100
給定乙個包含紅色 白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色 白色 藍色順序排列。此題中,我們使用整數 0 1 和 2 分別表示紅色 白色和藍色。注意 不能使用 庫中的排序函式來解決這道題。示例 輸入 2,0,2,1,1,0 輸出 0,0,1,1,2,...