题目

字符大小写排序 

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

样例

给出"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