字典序最大的子序列
题目描述
、
给定字符串s,s只包含小写字母,请求出字典序最大的子序列。
子序列:https://en.wikipedia.org/wiki/Subsequence
字典序:https://en.wikipedia.org/wiki/Lexicographical_order
输入
一行一个字符串s (1 <= |s| <= 100,000)。
输出
字典序最大的子序列。
样例
示例1
输入
ababba
输出
bbba
示例2
输入
abbcbccacbbcbaaba
输出
cccccbba
题意
简单贪心
AC代码
#include <bits/stdc++.h>
using namespace std;
int cnt[26];
int main() {
string s;
cin >> s;
for(int i = 0 ; i < (int)s.size(); i++) {
cnt[s[i]-'a']++;
}
int k = 0;
for(int i = 25; i >= 0; i--) {
int x = cnt[i];
while(x) {
if(s[k] == 'a'+i) {
cout << s[k];
x--;
}
else {
cnt[s[k]-'a']--;
}
k++;
}
}
cout << "\n";
return 0;
}