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