Given a string which contains only letters. Sort it by lower case first and upper case second.
Note
It ' s not necessary to keep the original order of lower-case letters and upper case letters.
Example
For "ABACD", a reasonable answer is "acbad"
Solution:
1 Public classSolution {2 /**3 *@paramchars:the Letter Array-should sort by case4 *@return: void5 */6 Public voidSortletters (Char[] chars) {7 intLen =chars.length;8 if(Len <= 1)return;9 Ten intP1 = 0, p2 = len-1; One while(P1<len && chars[p1]>= ' a ' && chars[p1]<= ' z ') p1++; A while(p2>=0 && chars[p2]>= ' A ' && chars[p2]<= ' Z ') p2--; - while(p1<p2) { - //swap p1 and P2. the Chartemp =CHARS[P1]; -CHARS[P1] =CHARS[P2]; -CHARS[P2] =temp; - //Find Next swap positions. + while(P1<len && chars[p1]>= ' a ' && chars[p1]<= ' z ') p1++; - while(p2>=0 && chars[p2]>= ' A ' && chars[p2]<= ' Z ') p2--; + } A } at}
Lintcode-sort Letters by case