给定一个只包含字母的字符串,按照先小写字母后大写字母的顺序进行排序。
注意事项
小写字母或者大写字母他们之间不一定要保持在原始字符串中的相对位置。
样例
给出"abAcD",一个可能的答案为"acbAD"
挑战
在原地扫描一遍完成
快速排序算法时间复杂度O(n)
class Solution {
public:
/**
* @param chars: The letters array you should sort.
*/
void sortLetters(string &letters) {
// write your code here
int n=letters.size();
int temp;
int j=n-1;
for(int i=0;i<=j;i++){
if(letters[i]>='a'&&letters[i]<='z')
continue;
else{
while(letters[j]>='A'&&letters[j]<='Z'){
if(j<=i)
break;
j--;
}
if(j==i)
break;
temp=letters[i];
letters[i]=letters[j];
letters[j]=temp;
}
}
}
};
字符串排序算法
本文介绍了一种针对包含大小写字母的字符串进行排序的算法,通过一次扫描实现小写字母在前、大写字母在后的排列方式,同时探讨了该算法如何在不改变原有字符相对位置的情况下完成任务。
3万+





