其他分享
首页 > 其他分享> > E-Lexicographically Maximum Subsequence

E-Lexicographically Maximum Subsequence

作者:互联网

题意

找一个串的最大字典序字串

题解

正序考虑会遇到无法确定这个数该不该选的情况,遇到的矛盾是无法确定后面有没有比它大的字母,所以我们只需要解决这个问题即可,做题时的基本思路就是正序不想试一试倒序能不能优化,我们可以记录住以i为结尾的最大字符然后第i-1个数与之比较,就可以确定当前字符是否能够输出。

#include<bits/stdc++.h>
using namespace std;
char s[100005], sum[100005];//sum[i]记录的是i后面的最大字符。
int main()
{
	scanf("%s", s + 1);
	int n = strlen(s + 1);
	for (int i = strlen(s + 1); i >= 1; i--)
	{
		sum[i] = max(sum[i + 1], s[i]);
	}
	for (int i = 1; i <= n; i++)
	{
		if (s[i] == sum[i])putchar(s[i]);
	}
}

标签:字符,正序,int,sum,Maximum,100005,Subsequence,strlen,Lexicographically
来源: https://blog.csdn.net/thexue/article/details/122394430