Lexicographically Maximum Subsequence CodeForces

来源:互联网 发布:淘宝网的域名怎么设置 编辑:程序博客网 时间:2024/05/18 01:22

题目链接: Lexicographically Maximum Subsequence CodeForces - 197C

题目大意

给你一个只包含小写字母大字符串s(|s|105), 求它字典序最大的子序列

思路

字典序要大, 那么第一个字母一定要是所有字母里面最大的, 然后第二个字母一定要是第一个字母后面所有字母中最大的, 依次类推
所以这个子序列: 原来字符串的顺序, 一定单调不递减(每次都取最大的)
可以将字符依次push进单调栈来得到, 代码简短高效

代码

#include <bits/stdc++.h>using namespace std;const int maxn = 2e5;char s[maxn], ans[maxn];int main(){    cin >> s;    int len = 0;    for(int i=0; s[i]!='\0'; ++i)    {        while(len > 0 && ans[len-1] < s[i]) --len;        ans[len++] = s[i];    }    for(int i=0; i<len; ++i) cout << ans[i];        cout << endl;    return 0;}
阅读全文
0 0