#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();
}
}

京公网安备 11010502036488号