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

leetcodeT3170

题目:

算法分析:

单调栈 + 排序应用

考察删除*和其前面的最小字典的字符,要使得剩余的字符字典序最小,考虑删除的字符的位置: 假设删除的字符为c

1.如果删除最前面的c 整体的字符串字典序应该最大

2. 如果删除最后面的c 整体的字符串字典序最大

因此算法的整体思路:

从左到右遍历 s,用 26 个栈记录遍历过的每种字母的下标。

遇到 *,弹出最小字母栈(第一个非空栈)的栈顶。

最后把剩余下标对应的字母按顺序串起来,即为答案。

 代码:

class Solution {public String clearStars(String s) {// 建立26个栈List<Integer>[] stks = new  ArrayList[26];Arrays.setAll(stks, i -> new ArrayList<>());int n = s.length();for(int i = 0; i < n; i++) {char c = s.charAt(i);if(c != '*') {stks[c - 'a'].add(i);} else {for(List<Integer> stk: stks) {if(!stk.isEmpty()) {stk.removeLast();break;}} }}List<Integer> idx = new ArrayList<>();for(List<Integer> stk: stks) {idx.addAll(stk);}Collections.sort(idx);StringBuilder sb = new StringBuilder();for(int i: idx) {sb.append(s.charAt(i));}return sb.toString();}
}

相关文章:

  • 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 示例项目
  • 大话软工笔记—需求调研概述
  • 探针有哪些?探测方法有哪些?
  • 一个完整的日志收集方案:Elasticsearch + Logstash + Kibana+Filebeat (二)
  • 外管局网站做延期收汇报告/百度推广代理
  • 用织梦系统做的2个网站要把它都上传到服务器上吗/seo自动点击排名
  • 企业公示信息查询系统广西/seo网络培训机构
  • 美女直接做的网站/百度竞价排名什么意思
  • 网站搭建公司排行榜/站内推广有哪些方式
  • 哪家专门做特卖的网站?/谷歌网址