题目描述:
解题思路:
首先,按字典序排列的最大子序列一定包含最后一个字母
从后往前找,后面的总是小于等于前面的元素才能保证子序列按字典序排列
代码实现:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String s = input.nextLine();
char max = 'a';
StringBuffer sb = new StringBuffer();
for (int i = s.length() - 1; i >= 0; i--) {
if (s.charAt(i) >= max) {
max = s.charAt(i);
sb.append(max);
}
}
String ans = sb.reverse().toString();
System.out.println(ans);
input.close();
}
}
运行结果:
github:
求字典序排列的最大子序列

该博客介绍了如何解决经典算法问题——找到一个序列中字典序排列最大的子序列。作者首先阐述了题目的背景,然后详细解释了解题思路,即确保子序列包含最后一个元素并从前到后满足字典序条件。接着,提供了Java代码实现,并展示了运行结果。
1171





