Given a string which contains only letters. Sort it by lower case first and upper case second.
Example
For "abAcD", a reasonable answer is "acbAD"
Note
It's not necessary to keep the original order of lower-case letters and upper case letters.
Challenge
Do it in one-pass and in-place.
class Solution { public: void sortLetters(string &letters) { // write your code here int len = letters.length(); int cur = -1; for(int i=0;i<len;i++) { if(cur == -1) { if(islower(letters[i])) continue; cur = i; } else if(islower(letters[i])) { swap(letters[cur++], letters[i]); } } } };