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

(LeetCode 每日一题)3170. 删除星号以后字典序最小的字符串(贪心+栈)

题目:3170. 删除星号以后字典序最小的字符串

在这里插入图片描述
在这里插入图片描述

思路:贪心+栈,时间复杂度0(n)。
对于每一个‘ * ’,优先选最右边的最小字符,才会使最终得到的字符串最小。
用栈,来记录每个字符的位置下标。细节看注释。

C++版本:

class Solution {
public:string clearStars(string s) {// 栈,记录已遍历过的每个字符的下标stack<int> st[26];for(int i=0;i<s.size();i++){if(s[i]!='*'){st[s[i]-'a'].push(i);continue;}// 贪心,找到最小的字符来删除for(auto &x:st){if(x.size()>0){// 标记为'*',表示删除// 选最大的下标值,也就是最后入栈的s[x.top()]='*';x.pop();break;}}}//剩余非'*'的就是答案string ans="";for(int i=0;i<s.size();i++){if(s[i]=='*') continue;ans.push_back(s[i]);}return ans;}
};

JAVA版本:

class Solution {public String clearStars(String s) {List<Integer>[] st=new ArrayList[26];Arrays.setAll(st,i->new ArrayList<>());char[] c=s.toCharArray();for(int i=0;i<c.length;i++){if(c[i]!='*'){st[c[i]-'a'].add(i);continue;}for(var x:st){if(x.size()>0){c[x.removeLast()]='*';break;}}}int top=-1;for(int i=0;i<c.length;i++){if(c[i]=='*') continue;c[++top]=c[i];}return new String(c,0,top+1);}
}

Go版本:

func clearStars(s string) string {c:=[]byte(s)st:=make([][]int, 26)for i:=0;i<len(s);i++ {if s[i]!='*' {st[s[i]-'a']=append(st[s[i]-'a'],i)continue}for j,x:= range st {if m:=len(x); m>0 {c[x[m-1]]='*'st[j]=x[:m-1]break}}}var ans []bytefor i:=0;i<len(s);i++ {if c[i]!='*' {ans=append(ans,c[i])}}return string(ans)
}

相关文章:

  • leetcodeT3170
  • Xilinx IP 解析之 Block Memory Generator v8.4 ——01-手册重点解读(仅 Native R
  • RAG检索系统的两大核心利器——Embedding模型和Rerank模型
  • 【第六篇】 SpringBoot的日志基础操作
  • Sentry 接口返回 Status Code 429 Too Many Requests
  • 编程关键字
  • Nifi数据流单节点部署
  • 矩形相交的面积 - 华为OD机试真题(Java题解)
  • C++算法训练营 Day11 栈与队列(2)
  • [文献阅读] Emo-VITS - An Emotion Speech Synthesis Method Based on VITS
  • C++.OpenGL (12/64)光照贴图(Lightmaps)
  • 【E9批量执行SQL】
  • 【论文解读】Toolformer: 语言模型自学使用工具
  • 金融预测模型开发:数据预处理、机器学习预测与交易策略优化
  • 复旦联合百度发布Hallo4:让AI肖像“活”起来!新型扩散框架实现高保真音频驱动动画生成!
  • 轻量高效的B站视频下载解析
  • 【CSS-5】深入理解CSS复合选择器:提升样式表的精确性与效率
  • React Hooks 示例项目
  • 大话软工笔记—需求调研概述
  • 探针有哪些?探测方法有哪些?
  • 徐州做网站/搜索引擎seo是什么
  • 企业做响应式网站好吗/网站seo推广计划
  • 网站首页html代码/抖音seo怎么收费
  • 做网站最主要是那个一类商标/百度指数网页版
  • 怎么用div做网站/超级优化大师下载
  • 网站建设管理软件/windows优化大师是自带的吗