题目

结果

代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| class Solution { public String sortString(String s) { Map<Character, Integer> map = new HashMap<>(); for (int i = 'a'; i <= 'z'; i++) { map.put((char) i, 0); } for (int i = 0; i < s.length(); i++) { map.put(s.charAt(i), map.get(s.charAt(i)) + 1); } StringBuilder sb = new StringBuilder(); while (sb.length() < s.length()) { for (int i = 'a'; i <= 'z'; i++) { if (map.get((char) i) > 0) { sb.append((char) i); map.put((char) i, map.get((char) i) - 1); } } for (int i = 'z'; i >= 'a'; i--) { if (map.get((char) i) > 0) { sb.append((char) i); map.put((char) i, map.get((char) i) - 1); } } } return sb.toString(); } }
|
复杂度
时间复杂度:O(n), 26n也是n
空间复杂度:O(n),map常数,StringBuilder是n