题目
描述
给定一个只包含字母的字符串,按照先小写字母后大写字母的顺序进行排序。
样例
样例 1:
输入: "abAcD"
输出: "acbAD"
样例 2:
输入: "ABC"
输出: "ABC"
挑战
在原地扫描一遍完成
思路
从两头往中间扫描,大小位置反了的就调换位置。
解答
代码
public void sortLetters(char[] chars) {
int i = 0, j = chars.length - 1;
char a;
while (i < j) {
if (chars[i] >= 'a') i++;
else if (chars[j] <= 'Z') j--;
else {
a = chars[i];
chars[i] = chars[j];
chars[j] = a;
}
}
}