列表

详情


NC15805. 字典序最大的子序列

描述

给定字符串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

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Python(2.7.3) 解法, 执行用时: 26ms, 内存消耗: 6244K, 提交时间: 2018-04-27 19:19:58

s = raw_input()

m = 'a'
ans = []
for i in range(len(s) - 1, -1, -1):
    if s[i] >= m:
        ans.append(s[i])
        m = s[i]

ans = reversed(ans)
print(''.join(ans))

C++ 解法, 执行用时: 7ms, 内存消耗: 672K, 提交时间: 2022-07-09 15:58:12

#include <bits/stdc++.h>
using namespace std;string s,r;int main(){cin>>s;for(int i=0;i<s.size();i++){while(r.size()&&s[i]>r.back()) r.pop_back();r+=s[i];}cout<<r<<endl;}

pypy3 解法, 执行用时: 80ms, 内存消耗: 23724K, 提交时间: 2023-02-15 19:32:05

s=input()[::-1]
a=""
c=s[0]
for i in s:
    if i>=c:
        a+=i
        c=i
print(a[::-1])

上一题