給你一個字符串 s ,請你根據下面的算法從新構造字符串:java
在任何一步中,若是最小或者最大字符不止一個 ,你能夠選擇其中任意一個,並將其添加到結果字符串。算法
請你返回將 s 中字符從新排序後的結果字符串app
咱們能夠直接建立一個大小爲 26 的桶,記錄每種字符的數量。而後重複若干輪下述操做,直到答案字符串的長度與傳入的字符串的長度相等,這樣就能夠構造出這個字符串:ui
class Solution { public String sortString(String s) { int[] nums = new int[26]; for(int i = 0; i < s.length(); i++) { nums[s.charAt(i) - 'a']++; } StringBuilder sb = new StringBuilder(); while(sb.length() < s.length()) { for(int i = 0; i < nums.length; i++) { if(nums[i] > 0) { sb.append((char)(i + 'a')); nums[i]--; } } for(int i = nums.length - 1; i >= 0; i--) { if(nums[i] > 0) { sb.append((char)(i + 'a')); nums[i]--; } } } return sb.toString(); } }