【算法】字符串删除字符后字典序最小

205 篇文章 9 订阅 ¥9.90 ¥99.00
该博客讨论了一种算法问题,即如何从给定的全小写字母字符串中删除多余的字符,保持每种字符仅保留一个,同时确保结果字符串的字典序最小。博主通过分析,提出先建立词频表,然后在遇到词频为1的字符时,选择该范围内ASCII码最小的字符保留,删除其他重复字符,以此递归地构造最小字典序的字符串。文章通过示例和步骤详细解释了算法思路,并未给出具体实现代码。
摘要由CSDN通过智能技术生成

在这里插入图片描述

1.概述

给定一个全是小写字母的字符串str,删除多余字符,使得每种字符只保留一个,并让最终结果字符串的字典序最小。

【举例】
str=“acbc”,删掉第一个’c’,得到"aba",是所有结果字符串中字典序最小的。

str="‘dbcacbca " ,删掉第一个6、第一个‘c’、第二个’c’、第二个’a’,得到"daba’,是所有结 果字符串中字典序最小的。

2.分析

首先删除字符的时候,因为每种字符必须存在一个,所以只有一个字符的不能删除,比如dbcacbca中的d只出现一次是不能删除的。

删除字符要保证字符的顺序不能变化。

这道题是贪心算法

假设有如下字符

字符串:t	a	a	b	c	b	a	b	c	t
索引:  0	1	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九师兄

你的鼓励是我做大写作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值