LeetCode 1370. Increasing Decreasing String (上升下降字符串)
题目标签:Sort
先把string sort 一下,字母从小到大排序;
建立一个 StringBuilder 来加入每一个char:
从左到右遍历,遇到char 不是space ' ' 和 char 和上一个char 不一样的情况下,添加这个字母,并且把这个字母改成 ' ';
再从右到左遍历,一样的判定。
自己做完之后看了别人答案,更优解的话,可以利用 int [26] 来计数字母,这种情况就不用把string sort 排序了。
Java Solution:
Runtime: 8 ms, faster than 36.27 %
Memory Usage: 39.4 MB, less than 85.70 %
完成日期:9/7/2020
关键点:sort
class Solution { public String sortString(String s) { char [] strChars = s.toCharArray(); Arrays.sort(strChars); StringBuilder str = new StringBuilder(); while(str.length() < s.length()) { char prev = ' '; // from left to right for(int i = 0; i < strChars.length; i++) { if(strChars[i] != ' ' && strChars[i] != prev) { prev = strChars[i]; str.append(strChars[i]); strChars[i] = ' '; } } prev = ' '; // from right to left for(int i = strChars.length - 1; i >= 0; i--) { if(strChars[i] != ' ' && strChars[i] != prev) { prev = strChars[i]; str.append(strChars[i]); strChars[i] = ' '; } } } return str.toString(); } }
LeetCode 题目列表 - LeetCode Questions List
题目来源:https://leetcode.com/