给定一个仅包含小写字母的字符串,去除重复的字母使得所有字母出现且仅出现一次。你必须保证返回结果是所有可能结果中的以字典排序的最短结果。
例如:
给定 "bcabc"
返回 "abc"
给定 "cbacdcbc"
返回 "acdb"

详见:https://leetcode.com/problems/remove-duplicate-letters/description/

C++:

class Solution {
public:string removeDuplicateLetters(string s) {int m[256]={0},visited[256]={0};string res="0";for(char a:s){++m[a];}for(char a:s){--m[a];if(visited[a]){continue;}while(a<res.back()&&m[res.back()]){visited[res.back()]=0;res.pop_back();}res+=a;visited[a]=1;}return res.substr(1);}
};

详见:http://www.cnblogs.com/grandyang/p/5085379.html

转载于:https://www.cnblogs.com/xidian2014/p/8831952.html

316 Remove Duplicate Letters 去除重复字母相关推荐

  1. 316. Remove Duplicate Letters 去除重复字母

    给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次.需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置). 注意:该题与 1081 https://leetcode-c ...

  2. LeetCode 316 Remove Duplicate Letters(删除重复字符)

    问题:给出一个字符串,要求删除重复字符,字典序是最小并且保持字符的相对位置. 思路: 方法一,使用递归算法,在出现只出现一次的前缀字符串中确定最小字符,然后在剩下的子串中递归. 方法二,使用栈做,先记 ...

  3. LeetCode 316. Remove Duplicate Letters

    (自己开发的博客,欢迎访问)https://www.weiboke.online 316. Remove Duplicate Letters Given a string which contains ...

  4. leetcode 316. Remove Duplicate Letters | 316. 去除重复字母(单调栈解法)

    题目 https://leetcode.com/problems/remove-duplicate-letters 题解 关于什么是"字典序" 字典序,换成数字更好理解一点 a:1 ...

  5. 316. 去除重复字母

    链接:316. 去除重复字母 题解:https://leetcode-cn.com/problems/remove-duplicate-letters/solution/qu-chu-zhong-fu ...

  6. LeetCode 练习——316. 去除重复字母

    文章目录 1.题目描述 2.思路 2.1 代码 2.2 测试结果 3.总结 1.题目描述 去除重复字母 给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次.需保证 返回结果的字典 ...

  7. [leetcode] remove duplicate letters

    用时4ms,内存1M (好高啊魂淡 思路: 先找出在"仍保留原字符串中所有字母种类,开头字母最小"的后缀子字符串.i.e.如果前面遍历到的字母在后面仍有出现则忽略掉,继续找最小首字 ...

  8. LeetCode 316. Remove Duplicate Letters--贪心--Java,C++,Python解法

    题目地址:Number of Longest Increasing Subsequence - LeetCode 做这道题目前建议先做:Longest Increasing Subsequence - ...

  9. 力扣- -去除重复字母

    力扣- -去除重复字母 文章目录 力扣- -去除重复字母 一.题目描述 二.分析 三.代码 四.问题描述 五.代码 一.题目描述 二.分析 题目的要求总结出来有三点: 要求一.要去重. 要求二.去重字 ...

最新文章

  1. RHEL6入门系列之九,常用命令2
  2. linux deploy ENV 目录,手机安装linux deploy 安装和配置
  3. 服务器死机是怎么造成的?
  4. 按照linux文件出现的时间来删除文件
  5. 性能优化实战|使用eBPF代替iptables优化服务网格数据面性能
  6. java3d创建立方体_Opengl创建几何实体——四棱锥和立方体
  7. 马斯克:我上大学时就想创立电动汽车公司
  8. MySQL高级-MySQL并发参数调整
  9. Python使用pyopencl在GPU上并行处理批量判断素数
  10. R语言实现常用的5种分析方法(主成分+因子+多维标度+判别+聚类
  11. Office基础操作:Word、PPT 表格文字居中
  12. JSON在线格式化,美化
  13. Mysql之半同步复制
  14. 国科大-高性能计算考试
  15. TSINGSEE车载视频监控技术在城市公交场景中的应用
  16. 2021年中国百强区总体发展概况分析:深圳南山区、广州天河区、深圳福田区等城区高质量发展水平领跑全国[图]
  17. 深圳软件测试培训:Js中的变量
  18. Bayesian face revisited : a joint formulation 论文学习
  19. Docker swarm集群管理工具
  20. 【STM32F429】第4章 ThreadX FileX文件系统移植到STM32F429(SD卡)

热门文章

  1. 各计算机系统用传输介质互连,计算机网络技术与应用.doc
  2. python 0xa什么意思_python使用xpath中遇到:Element a at 0x39a9a80到底是什么?
  3. python怎么使用预训练的模型_Tensorflow加载Vgg预训练模型操作
  4. mysql的collate_MYSQL中的COLLATE是什么?
  5. 关于机器学习的十个实例
  6. python中什么具有去重功能_python中去重的方法
  7. 系统学习NLP(二十五)--语种识别landID
  8. 相机姿态估计(三)--P3P
  9. new运算符与malloc函数区别
  10. C语言中结构化数据(变量,指针,数组,字符串,结构体和联合)的内存表示