Leetcode1370 上升下降字符串

2020年11月25日 0 作者 折纸

题目描述

file

方法一

class Solution {
    public String sortString(String s) {
        int[] table = new int[26];
        int len = s.length();
        // String res = "";
        StringBuffer res = new StringBuffer();
        for(int i=0;i<len;i++){
            table[s.charAt(i) - 'a'] += 1;
        }
        while(res.length()!=len){
            for(int i=0;i<26;i++){
                if(table[i]!=0){
                    res.append((char)(i + 'a'));
                    table[i] -= 1;
                }
            }
            for(int i=25;i>-1;i--){
                if(table[i]!=0){
                    res.append((char)(i + 'a'));
                    table[i] -= 1;
                }
            }
        }
        return res.toString();
    }
}

 

思考

  • 比较StringBuffer和String的差别,本题中String 15ms,StringBuffer 3ms,频繁修改的情况下永远优先StringBuffer