给定一个只包含字母的字符串,按照先小写字母后大写字母的顺序进行排序。
样例
给出"abAcD",一个可能的答案为"acbAD"
在原地扫描一遍完成
原理类似快速排序
class Solution {
public:
void sortLetters(string &letters) {
int n=letters.length();
if(n<=1) return;
int left=0,right=n-1;
char key=letters[left];
while(left<right){
while(left<right&&isupper(letters[right])) right--;
letters[left]=letters[right];
while(left<right&&islower(letters[left])) left++;
letters[right]=letters[left];
}
letters[left]=key;
}
};