Given a string s. You should re-order the string using the following
algorithm:
s and append
it to the result.
s which is
greater than the last appended character to the result and
append it.
s and
append it to the result.
s which is
smaller than the last appended character to the result and
append it.
s.
In each step, If the smallest or the largest character appears more than once you can choose any occurrence and append it to the result.
Return the result string after sorting s with this
algorithm.
Example 1:
Input: s = "aaaabbbbcccc" Output: "abccbaabccba" Explanation: After steps 1, 2 and 3 of the first iteration, result = "abc" After steps 4, 5 and 6 of the first iteration, result = "abccba" First iteration is done. Now s = "aabbcc" and we go back to step 1 After steps 1, 2 and 3 of the second iteration, result = "abccbaabc" After steps 4, 5 and 6 of the second iteration, result = "abccbaabccba"
Example 2:
Input: s = "rat" Output: "art" Explanation: The word "rat" becomes "art" after re-ordering it with the mentioned algorithm.
Example 3:
Input: s = "leetcode" Output: "cdelotee"
Example 4:
Input: s = "ggggggg" Output: "ggggggg"
Example 5:
Input: s = "spo" Output: "ops"
Constraints:
1 <= s.length <= 500s contains only lower-case English letters.