题目描述
给定一个只包含字母的字符串,按照先小写字母后大写字母的顺序进行排序。
样例1
输入: "abAcD"
输出: "acbAD"
样例2
输入: "ABC"
输出: "ABC"
java题解
public class Solution {
public void sortLetters(char[] chars) {
int i = 0, j = chars.length - 1;
char tmp ;
while ( i <= j) {
while (i <= j && Character.isLowerCase(chars[i]) ) i++;
while (i <= j && Character.isUpperCase(chars[j]) ) j--;
if (i <= j) {
tmp = chars[i];
chars[i] = chars[j];
chars[j] = tmp;
i++; j--;
}
}
return ;
}
}
C++题解
using namespace std;
class Solution {
public:
bool isLower(char c) {
return c >= 'a' && c <= 'z';
}
void sortLetters(string &letters) {
int i = 0, j = letters.size() - 1;
while (i <= j) {
while (i <= j && isLower(letters[i])) i++;
while (i <= j && !isLower(letters[j])) j--;
if (i <= j) {
char c = letters[i];
letters[i] = letters[j];
letters[j] = c;
}
}
}
};
python题解
class Solution:
def sortLetters(self, chars):
chars.sort(key=lambda c: c.isupper())