求最大子序列的問題

風是甜的你是我的發表於2018-07-16

連結:https://www.nowcoder.com/questionTerminal/17ba5b5df1fc49ca8d6cf8ea407b1972
來源:牛客網

對於字串x和y, 如果擦除x中的某些字母(有可能全擦掉或者都不擦)能夠得到y,我們就稱y是x的子序列。例如."ncd"是"nowcoder"的子序列,而"xt"不是。
現在對於給定的一個字串s,請計算出字典序最大的s的子序列。

輸入描述:

輸入包括一行,一個字串s,字串s長度length(1 ≤ length ≤ 50).
s中每個字元都是小寫字母

輸出描述:

輸出一個字串,即字典序最大的s的子序列。
#include<bits/stdc++.h>
using namespace std;
string s;
int main()
{
    cin>>s;
    ostringstream ss;
    while(!s.empty())
    {
        string::iterator it = max_element(s.begin(),s.end());//max_element在演算法標頭檔案中
        ss<<*it;
        s.erase(s.begin(),it+1);
    }
    cout<<ss.str()<<endl;//方法str()將緩衝區的內容複製到一個string物件中,並返回 
//方法str()將緩衝區的內容複製到一個string物件中,並返回 

    return 0;
}

 

 

 

 

相關文章