当前位置: 首页 > news >正文

做网站游燕网站制作教程

做网站游燕,网站制作教程,如何查询网站打开速度变慢,北滘做网站题目:去除重复字母 给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。 示例 1: 输入:s “bcabc” 输…

题目:去除重复字母

给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。

示例 1:

输入:s = “bcabc”
输出:“abc”
示例 2:

输入:s = “cbacdcbc”
输出:“acdb”

其实这道题我觉得和 402. 移掉 K 位数字很像的,这道题的题解可以看一下单调栈的总结与案例复盘。

思路:

402 是构造单调递增栈的过程中,通过k的数量判断要不要将栈顶元素弹出。
316 是构造单调递增栈的过程中,通过 尚未遍历的元素中(restMap)是否还有和栈顶元素重复的元素,如果没有了,那么栈顶元素不可以去除,否则可以去除。
316 还需要判断一下栈内(usedMap)是否有这个元素,如果已经有了,也不可以入栈。
316 中需要用两个map来维护栈内的元素个数 和 尚未遍历的元素个数。

var removeDuplicateLetters = function(s) {let restMap = new Map();let usedMap = new Map();for(let i = 0; i < s.length; i++){if(!restMap.has(s[i])){restMap.set(s[i],0);}  restMap.set(s[i],restMap.get(s[i])+1);   usedMap.set(s[i], 0);}let stack = [];for(let i = 0; i < s.length; i++){restMap.set(s[i],restMap.get(s[i])-1);// 如果栈里已经有了就不要再入栈了,比如栈里有ab,如果当前元素是a,// 那么a就会将b弹出,不会弹出a,又因为栈里已经有a,所以当前元素也不会将元素压入栈中,// 因此无缘无故弹出一个元素,我们一定要清楚,弹出元素是为了不破坏单调性,不弹也不会破环。if(usedMap.get(s[i]) === 1){continue;}//构造单调递增while(stack.length && s[i] < stack[stack.length-1] && restMap.get(stack[stack.length-1]) > 0){let top = stack.pop();usedMap.set(top,0);} // 栈里没有才能往里面放stack.push(s[i]);usedMap.set(s[i],1);}return stack.join('');};
http://www.mmbaike.com/news/56631.html

相关文章:

  • 河南建设信息网站长沙优化网站
  • 武汉做网站的公司哪家好百度云搜索引擎入口盘搜搜
  • 网站建设日程表如何写淘宝如何刷关键词增加权重
  • 中建材建设有限公司网站李勇seo博客
  • 杭州蒙特网站建设网页设计制作网站图片
  • 为什么有的网站打不开网站优化比较好的公司
  • 天津免费网站建站模板十大免费cms建站系统介绍
  • java和php做网站网站搜什么关键词好
  • 杭州移动网站建设刚出来的新产品怎么推
  • 网站动效怎么做的常用的五种网络营销工具
  • 微信做单子的网站源码西安企业网站seo
  • 网站成立查询百度导航怎么下载
  • 东铁匠营网站建设正规网站优化哪个公司好
  • 湘潭网站建设 皆来磐石网络整站seo排名费用价格
  • 做外贸要做什么网站营销公司网站
  • 有哪些做相册视频剪辑的网站百度官网入口链接
  • 建一个网站流程seo关键词首页排名代发
  • 区块链网站用vue.js做怎么样百度上怎么发布作品
  • 买完域名怎么创建网站引擎网站推广法
  • 西安短视频制作公司深圳搜索引擎优化收费
  • 怎么做自己的cpa网站优化公司组织架构
  • 昆明网站制作seo快排优化
  • 企业推广的主要目的是太原seo排名优化公司
  • 优化方案历史某个网站seo分析实例
  • wordpress特定页面设为主页seo的中文意思
  • 昆山建设企业网站seo优化工程师
  • 谷歌可以做网站吗佛山做网站建设
  • 邢台营销型网站建设费用长沙做网站推广公司咨询
  • 手機如何做网站今日头条重大消息
  • 邢台市防疫办电话是多少网站seo价格