前言
偷懒了两天,今天继续,还是排序专题。使用桶计数每个单词的数量。对最小排序和最大排序分别进行循环计算。
题目
源码
class Solution {
public String sortString(String s) {
int [] arr=new int[26];
int remian=s.length();
for(int i=0;i<s.length();i++){
arr[s.charAt(i)-97]++;//计数每个单词次数
}
StringBuffer ans=new StringBuffer();
while(remian>0){
for (int i=0;i<arr.length;i++){//重复步骤2,将最小的放在最后
if(arr[i]!=0){
ans.append((char)(i+97));
arr[i]--;
remian--;
}
}
for(int i=arr.length-1;i>=0;i--){
if(arr[i]!=0){//重复步骤5,将最大的放最后
ans.append((char)(i+97));
arr[i]--;
remian--;
}
}
}
return ans.toString();
}
}