HJ26 - 字符串排序
题目
代码
#include <iostream>
#include <vector>
using namespace std;
/*
1先对字母进行排序
2再将排好序的字母对s中的字母位依次赋值
*/
string strSort(string s){
int n = s.size();
vector<char> str;
//对字符串中的字母进行排序
for(int i = 0; i < 26; i++){
for(int j = 0; j < n; j++){
if(s[j] - 'a' == i || s[j] - 'A' == i){
str.push_back(s[j]);
}
}
}
//排好序的字符对字符串里的字符位进行赋值
for(int i = 0, k = 0; i < n && k < str.size(); i++){
if(s[i] >= 'a' && s[i] <= 'z' || s[i] >= 'A' && s[i] <= 'Z'){
s[i] = str[k++];
}
}
return s;
}
int main(){
string str;
cin>>str;
str = strSort(str);
cout<<str;
return 0;
}