按照题目模拟 创建了一个长度为26的数组来存放字母数量 kk是结果res的实时长度,cs是第几次(来决定添加最小的还是添加最大的)
class Solution {
public:
string sortString(string s) {
string res;
int arr[26]={0};
int size=26;
for(auto c:s){
arr[c-97]++;
}
int kk=0,cs=0;
while(kk<s.length()){
if(cs%2==0){
for(int i=0;i<size;i++){
if(arr[i]!=0){
res+=(char)i+97;
kk++;
arr[i]--;
}
}
cs++;
}else{
for(int j=size-1;j>=0;j--){
if(arr[j]!=0){
res+=(char)j+97;
arr[j]--;
kk++;
}
}
cs++;
}
}
return res;
}
};