首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
删除多余的字符得到字典序最小的字符串
[编程题]删除多余的字符得到字典序最小的字符串
热度指数:1776
时间限制:C/C++ 2秒,其他语言4秒
空间限制:C/C++ 256M,其他语言512M
算法知识视频讲解
给一个全是小写字母的字符串str,删除多余字符,使得每种字符只保留一个,并且让最终结果字符串字典序最小。
输入描述:
输入包含一行字符串,代表str
。
输出描述:
输出一行,代表删除后的字符串。
示例1
输入
acbc
输出
abc
示例2
输入
dbcacbca
输出
dabc
备注:
时间复杂度
,额外空间复杂度
。
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(5)
邀请回答
收藏(27)
分享
纠错
提交结果有问题?
24个回答
3篇题解
开通博客
一只老风铃
发表于 2020-12-30 13:13:53
首先统计各个字符出现的数目 int count[26]标记数组表明结果中是否包含当前字符 bool visit[26]对于新来的一个字符,如果已经在结果中那么跳过如果不在结果中,那么需要判断结果末尾的元素是否需要弹出,条件为:①末尾元素之后还存在剩余②末尾元素的字典序比当前字符字
展开全文
牛客703998597号
发表于 2022-02-17 20:37:50
单调栈: 创建访问标志map。 1.从后往前遍历字符串,遇到一个字符ch。 2.在map中查询是否存在ch。 1). 若不存在,ch入栈,入map。 2). 若存在: 若ch小于栈顶字符,将栈中包含的ch弹出,ch入栈 若ch大于栈顶字符,跳过. 循环1,2步。 void remove(
展开全文
😊201803232157581
发表于 2021-08-31 11:56:44
public class Main { public static void main(String[] args) { char[] str = {'d','a','b','c','d'}; for(char a:str){ Syst
展开全文
问题信息
贪心
字符串
上传者:
小小
难度:
24条回答
27收藏
9990浏览
热门推荐
通过挑战的用户
查看代码
追风少年小曾
2023-02-01 20:51:17
已注销
2022-12-07 10:03:12
chenzexin
2022-12-06 20:54:27
邮箱控控
2022-11-12 13:33:48
牛客16312...
2022-09-14 22:33:16
相关试题
下面使用贪心算法的是?
阿里巴巴
贪心
评论
(1)
求序列里最长的非降序列 例如:输...
百度
贪心
评论
(12)
无源晶振起振电容容量选择方法
元器件
评论
(1)
如果让你策划设计一个影片评论功能的...
竞品研究
评论
(1)
手写代码:循环链表插入元素
评论
(1)
删除多余的字符得到字典序最小的字符串
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
acbc
abc
dbcacbca
dabc