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

国际贸易网站排名技能培训网站

国际贸易网站排名,技能培训网站,赣州91人才网赣州招聘,旅游宣传网站建设方案题目来源: 给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。 示例 1: 输入:s "bcabc" 输出&#xff…

题目来源:

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

示例 1:

输入:s = "bcabc"
输出"abc"

示例 2:

输入:s = "cbacdcbc"
输出:"acdb"

提示:

  • 1 <= s.length <= 104
  • s 由小写英文字母组成

题目最好情况就是所有字母单调递增,这样全部返回


s = "cbacdcbc"对于这个例子,c入栈,b要入栈发现b比c小,通过观察答案这个c是被去掉了的

为什么,因为后续还有c(关键点1),c在b后面肯定是不在b前面好的(题目要求),所以c应该被去掉

,所以去掉a,然后b入栈,a入栈的时候发现a比b小,且b后面还有出现,所以b出栈,然后c入栈,

d入栈,c要入栈,c已经在栈中了(关键点2,需为在栈中的字符设置标记),所以跳过这个c,b入栈,发现b比栈顶小,但是后面已经没有d了,所以栈顶元素d不能出栈,然后c同样,栈已经存在,跳过

得到最终答案acdb


当一个字母要入栈,那么栈顶的元素是比他小的,那么是最好的,这个元素可以入栈

如果栈顶元素比他大呢,我们是否要将他去掉吗,不,如果待搜索的字母中(还未入栈)不包括栈顶元素,那么他是不应该被删掉的,在这种情况,我们就得知道栈顶元素的字母后续是否会出现,

故得出:题目关键点1:记录字母-出现次数的映射关系

public class A316 {public static String removeDuplicateLetters(String s) {int length=s.length();int[] num=new int[26];
int[] vis=new int[26]; //vis[i]==1表示被访问过
StringBuilder stk=new StringBuilder();//记录元素个数for(int i=0;i< s.length();i++){char cur=s.charAt(i);num[cur-'a']++;}//元素进栈,如果比栈顶小,并且栈顶对于字母还有,那么栈顶出,直到栈顶元素比当前元素还小---入栈---对应数目减1//如果比栈顶大,入栈
for(int i=0;i<length;i++){char cur=s.charAt(i);num[cur-'a']--;//如果该元素在栈中了,跳过if(vis[cur-'a']==1)continue;//如果栈为空或者栈顶元素小于该元素,该元素入栈if(stk.length()==0||cur- stk.charAt(stk.length()-1)>0){stk.append(cur);//入栈vis[cur-'a']=1;//标记为该元素在栈中}//如果比栈顶元素小或者和栈顶元素相等else{//栈不为空且栈顶元素大于该元素,且栈顶元素后续还有,则栈顶元素出栈while(stk.length()>0&&stk.charAt(stk.length()-1)>cur&&num[stk.charAt(stk.length()-1)-'a']!=0){//比栈顶元素小或者和栈顶元素相等且栈顶元素后续还有,则栈顶元素出vis[stk.charAt(stk.length()-1)-'a']=0;//标记为没在栈中//出栈stk.deleteCharAt(stk.length()-1);}//该元素入栈stk.append(cur);vis[cur-'a']=1;//标记为入栈了}
}String res= stk.toString();
return res;}public static void main(String[] args) {String s="cbacdcbc";String s1 = removeDuplicateLetters(s);System.out.println(s1);}
}

http://www.dtcms.com/wzjs/166719.html

相关文章:

  • 谷歌seo怎么提高网站权重竞价运营是做什么的
  • 简述网站开发岗位及职务日照seo优化
  • 怎么做网站的图片关键词工具软件
  • 建设专业网站哪家比较好网站收录量是什么意思
  • 做网站把自己做死中企动力做网站推广靠谱吗
  • 简述网站建设网站seo资讯
  • 重庆巴南网站制作seo应该如何做
  • 临朐整站优化seo专业技术培训
  • 怎么做网站上面的那种卡通图片推广产品引流的最佳方法
  • 软件开发项目验收报告武汉seo收费
  • 网站建设收获与不足网站推广经验
  • 东莞网络建站怎么推广自己的网站?
  • 南通建设网站站长工具seo综合查询
  • 黄冈商城网站建设搜索点击软件
  • 网站建设需要什么设备千峰培训出来好就业吗
  • 营销网站建设yyeygtytty搜客
  • 网站建设费 账务处理世界疫情最新数据
  • 唐山建设集团下岗职工网站百度com百度一下你
  • 杭州网站建设制作公司资源网站优化排名软件公司
  • 做美食网站的图片素材首页图片点击率如何提高
  • 网站做目录我想在百度上做广告怎么做
  • 互联网app网站建设方案模板下载腾讯域名注册官网
  • 宁波网站怎么建设百度推广天津总代理
  • 在godaddy做网站贵吗网站建设主要推广方式
  • 做交流网站seo发帖软件
  • 做一个公司的网站应做哪些准备工作内容企业网络营销目标
  • 做公司网站的时间实时积分榜
  • 郑州专业的网站建设广东疫情最新数据
  • 设计上海2023展会时间网站做优化好还是推广好
  • 中山做网站哪家公司好排名sem优化软件