字典序最大子序列字符串

基本常识(字典序):

字典序比较大小的方式就是,从第一位逐位比较,如果这一位不相等,那么肯定有大小之分,大的就大,小的就小,如果相同,找下一位,和字符串长度没有关系,只有s1的全部字符都和s2的前strlen(s1)位都相等的情况,s2更长,所以更大

如:aaa>aa,abc>aaaa,ad>abcd

子序列的话,大概意思就是相对位置不变,每个字符可选可不选

比如abcdefg的子序列有:

a

b

abc

abd

acef

或者说,你从头遍历一边,你可选可不选(这样相对位置就没变),最后你选的这些组成的字符串就是一个子序列。

基本思路:从左往右扫一遍找到第一个最大的字母。从后往前扫,如果前面的字母大于等于后边串中最大的字母,那么保存下来,最后逆序输出即可。

看一个例题

字典序最大子序列字符串
代码实现:
字典序最大子序列字符串
在康康的代码中,数组b用于比较的,数组c是用来存结果的,而数组a是用来将符合条件的单个字符赋值给数组c的。

另外,注意边界和逆序输出就可以ac了!