lintcode :sort letters by case字符大小写排序

题目

字符大小写排序

给定一个只包含字母的字符串,按照先小写字母后大写字母的顺序进行排序。

您在真实的面试中是否遇到过这个题?
Yes
样例

给出"abAcD",一个可能的答案为"acbAD"

注意

小写字母或者大写字母他们之间不一定要保持在原始字符串中的相对位置。

挑战

在原地扫描一遍完成

解题

这个题目很简单,前面刚做一个把大于某个数之和的排在后面,快速排序的思想

public class Solution {
/**
*@param chars: The letter array you should sort by Case
*@return: void
*/
public void sortLetters(char[] chars) {
//write your code here
int len = chars.length;
if(len ==0 || chars==null){ }else{
int i=0;
int j=len-1;
while(i<=j){
while(i<=j && isLowerCase(chars[i])) i++;
while(i<=j && isUpperCase(chars[j])) j--;
if(i<=j){
char ch = chars[i];
chars[i] = chars[j];
chars[j] = ch;
}
}
} }
public boolean isLowerCase(char ch){
if(ch>='a' && ch<='z')
return true;
return false;
}
public boolean isUpperCase(char ch){
if(ch>='A' && ch<='Z')
return true;
return false;
} }

Java Code

上一篇:信步漫谈之Redis—Linux下环境搭建


下一篇:codeforces 712B. Memory and Trident