描述
输入一个长度不超过20的字符串,对所输入的字符串,按照ASCII码的大小从小到大进行排序,请输出排序后的结果
输入描述:
一个字符串,其长度n<=20
输出描述:
输入样例可能有多组,对于每组测试样例, 按照ASCII码的大小对输入的字符串从小到大进行排序,输出排序后的结果
示例1
输入:
dcba
输出:
abcd
不用排序函数解法:
#include <iostream>
#include <stack>
using namespace std;
int main() {
string s;
cin>>s;
stack<char> st; //定义栈
int n=s.size();
for(int i=0;i<n;){
int count=i; //记录序列中字符最大的位置
for(int j=i+1;j<n;j++){ //找最大的字符
if(s[j]-'A'>s[count]-'A'){
count=j;
}
}
st.push(s[count]); //放入栈中
s.erase(count,1); //删除相应的字符
n--;
}
while(!st.empty()){ //输出栈
char c=st.top();
cout<<c;
st.pop();
}
}
使用排序函数做法:
#include <algorithm>
#include <iostream>
using namespace std;
int main() {
string s;
cin>>s;
sort(s.begin(), s.end()); //排序
cout<<s<<endl;
}
// 64 位输出请用 printf("%lld")
PS:sort()函数真香!