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

Java | Leetcode Java题解之第316题去除重复字母

题目:

题解:

class Solution {public String removeDuplicateLetters(String s) {boolean[] vis = new boolean[26];int[] num = new int[26];for (int i = 0; i < s.length(); i++) {num[s.charAt(i) - 'a']++;}StringBuffer sb = new StringBuffer();for (int i = 0; i < s.length(); i++) {char ch = s.charAt(i);if (!vis[ch - 'a']) {while (sb.length() > 0 && sb.charAt(sb.length() - 1) > ch) {if (num[sb.charAt(sb.length() - 1) - 'a'] > 0) {vis[sb.charAt(sb.length() - 1) - 'a'] = false;sb.deleteCharAt(sb.length() - 1);} else {break;}}vis[ch - 'a'] = true;sb.append(ch);}num[ch - 'a'] -= 1;}return sb.toString();}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MongoDB简介及其在Java中的应用
  • 大语言模型(LLM)快速理解
  • 记录一次服务器被(crontab)木马入侵事件
  • 【Nuxt】服务端渲染 SSR
  • [Meachines] [Easy] Mirai Raspberry树莓派默认用户登录+USB挂载文件读取
  • 栈和队列——2.逆波兰表达式求值
  • ReactiveStream
  • 智慧水务项目(二)django(drf)+angular 18 创建通用model,并对orm常用字段进行说明
  • 23. Hibernate 性能之缓存与缓存算法
  • Java重修笔记 第二十七天 匿名内部类
  • 用Python实现AI人脸识别
  • 如何开启idea中的断言功能?
  • 纯原创【车牌识别】基于图像处理的车牌识别——matlab项目实战(含GUI界面)详解
  • 最佳编程语言选择与学习路径探讨
  • 一文掌握Python全部条件执行语句(基础篇)
  • 【347天】每日项目总结系列085(2018.01.18)
  • 77. Combinations
  • Android优雅地处理按钮重复点击
  • CSS实用技巧
  • ECMAScript入门(七)--Module语法
  • node.js
  • Shell编程
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • webgl (原生)基础入门指南【一】
  • 记录:CentOS7.2配置LNMP环境记录
  • 开源SQL-on-Hadoop系统一览
  • 利用jquery编写加法运算验证码
  • 三分钟教你同步 Visual Studio Code 设置
  • 微服务核心架构梳理
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 追踪解析 FutureTask 源码
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (¥1011)-(一千零一拾一元整)输出
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (39)STM32——FLASH闪存
  • (4.10~4.16)
  • (bean配置类的注解开发)学习Spring的第十三天
  • (done) 两个矩阵 “相似” 是什么意思?
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)原始图像数据和PDF中的图像数据
  • ... 是什么 ?... 有什么用处?
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .Net Core中Quartz的使用方法
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .net下简单快捷的数值高低位切换
  • /etc/shadow字段详解
  • /proc/stat文件详解(翻译)
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?