b_bd_最大子序列(反向遍历+记录最最小值)

对于给定的一个字符串s,请计算出字典序最大的s的子序列。

思路:因为要保证字典序最大,所以ans的开头得尽量大

def solve(s):
    n,ans,mi=len(s),'',ord('a')-1
    for i in range(n-1,-1,-1):
        if ans=='' or mi<=ord(s[i]):
            ans+=s[i]
            mi=ord(s[i]) #不用ord也行
    return ans[::-1]
print(solve(input()))

正向做不了的时候,就逆着想一下

原文地址:https://www.cnblogs.com/wdt1/p/14187440.html