一、题目
定义两个长度相等的字符串比较最优时,字典序大的那个是更优
现在给你一个字符串s,字符串的元素全是小写英文字母a-z,你可以在这个字符串按照顺序选择一个长度为k的子序列(可以不连续),现在求最优子序列是什么
比较它们第一次出现不相等时,字母大的那个更大
比如 abac 大于 aazy
输入 4 2;
ebfc 输出 fc
二、题解
该题如果选用回溯法,会超时,但是又需要罗列所有的情况,选择其中字典序最大的子序列
可以采用单调栈的思想
栈为空时,入栈
遍历所有的字符,比较当前字符和栈顶元素的大小,如果当前位大于栈顶元素,同时后续的字符仍然可以凑够k位,则可以考虑加入当前元素
public class Test {
public static void main(