【棧】不同字符的最小子序列

題目:


/*** 思路:棧,使用數組記錄每個字母出現的次數,再用一個數組標記字符是否在棧中*       遍歷棧,存儲字符時比較棧頂字符,若小于棧頂字符并且后面有重復的字符則*       棧頂元素出棧,否則入棧。** @auther start* @create 2023-11-23 21:50*/
public class L1081 {public String removeDuplicateLetters(String s) {char[] chars = s.toCharArray();int[] left = new int[26];//標記字符是否在結果中boolean[] inAns = new boolean[26];//記錄字符出現的次數for (char c : chars) {left[c - 'a']++;}//存放結果
//        StringBuilder ans = new StringBuilder(26);Deque<Character> ans = new LinkedList<>();//遍歷字符串for (char c : chars) {left[c - 'a']--;//保證結果中沒有重復字母if (inAns[c - 'a'])continue;//當前字符比前一個字符小,并且前一個字符后面有重復的, 則從結果中去除前一個字符。while (!ans.isEmpty() && c < ans.peek() && left[ans.peek() - 'a'] > 0) {//將前一個字符標為false,表示結果中沒有該字符inAns[ans.peek() - 'a'] = false;//刪除前一個字符ans.pop();}//添加字符到結果中ans.push(c);//表示存在inAns[c - 'a'] = true;}StringBuilder sb = new StringBuilder();int n = ans.size();for (int i = 0; i < n; i++) {sb.insert(0,ans.pop());}return sb.toString();}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/165075.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/165075.shtml
英文地址,請注明出處:http://en.pswp.cn/news/165075.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PS 注釋工具 基礎使用方法講解

好 上文PS 顏色取樣器&標尺工具 基本使用講解中 我們講了 顏色取樣器和標尺工具的基本用法 下面我們來看一下 注釋工具 這個 主要是后面 比較大的作品 可能不是我們一個人取設計 團隊作圖 就需要用到它 選擇 注釋工具 后 我們隨便點擊圖像任何一個位置 右側就會出現一個輸…

gitlab各版本安裝注意點:

研發團隊在安裝gitlab各版本過程中可能遇到各種問題&#xff0c;為了后續容易查看特將我們在實踐過程中遇到的各類問題要點總結如下&#xff1a; gitlab 10.8.3 (564c342&#xff09;安裝 centos Linux yum安裝網址查找網址&#xff1a;gitlab/gitlab-ce - Results for gitla…

執行shell腳本提示syntax error: unexpected end of file

具體報錯如下&#xff1a; ./test.sh: line 36: syntax error: unexpected end of file執行命令時需將test.sh替換為實際的腳本文件名稱。 情形一&#xff1a; shell腳本在Windows下編寫&#xff0c;上傳到Linux上執行&#xff0c;由于 fileformat 類型不同&#xff0c;所以報…

黑馬點評12-實現好友關注/取關功能,查看好友共同關注列表

好友關注 數據模型 數據庫中的tb_follow記錄博主與粉絲的關系 tb_follow表對應的實體類 Data EqualsAndHashCode(callSuper false) Accessors(chain true) TableName("tb_follow") public class Follow implements Serializable {private static final long ser…

代碼隨想錄算法訓練營第三十二天| 122 買賣股票的最佳時機 || 55 跳躍游戲 45 跳躍游戲 ||

目錄 122 買賣股票的最佳時機 || 55 跳躍游戲 45 跳躍游戲 || 122 買賣股票的最佳時機 || 設置變量now代表此時買入的股票&#xff0c;為賦值為Integer.MAX_VALUE&#xff0c;遍歷prices數組&#xff0c;有如下兩種情況&#xff1a; 如果比now小說明不能售出&#xff0c;可以…

關于unicloud云對象或云函數獲取時間不對的問題

話不多說&#xff0c;直接上代碼&#xff1a; function timeWeekFormat() { //定義一個日期對象; var dateTime getOffsetDate(8); //獲得系統年份; var year dateTime.getFullYear(); //獲得系統月份; var month dateTime.getMonth() 1; //獲…

棧和隊列的OJ題--12.括號匹配

12.括號匹配 20. 有效的括號 - 力扣&#xff08;LeetCode&#xff09; 解題思路&#xff1a;該題比較簡單&#xff0c;是對棧特性很好的應用&#xff0c;具體操作如下&#xff1a;循環遍歷String中的字符&#xff0c;逐個取到每個括號&#xff0c;如果該括號是&#xff1a;1. …

Git工作流和Commit規范

Git大家都非常熟悉了&#xff0c;就不做過多介紹&#xff0c;但是如何用好Git、如何進行合理的分支開發、Merge你是否有一個規范流程呢&#xff1f;&#x1f4a4; 不論是一個團隊一起開發一個項目&#xff0c;還是自己獨立開發一個項目&#xff0c;都少不了要和Git打交道&…

【NGINX--5】身份驗證

1、HTTP 基本身份驗證 需要通過 HTTP 基本身份驗證保護應用或內容。 生成以下格式的文件&#xff0c;其中的密碼使用某個受支持的格式進行了加密或哈希處理&#xff1a; # comment name1:password1 name2:password2:comment name3:password3第一個字段是用戶名&#xff0…

紫光展銳V8821榮獲“中國芯”重大創新突破產品獎

近日&#xff0c;“中國芯”優秀產品評選落下帷幕&#xff0c;紫光展銳首顆5G IoT-NTN衛星通信SoC芯片V8821憑借在衛星通信前沿領域的技術創新&#xff0c;從285家芯片企業、398款芯片產品中脫穎而出&#xff0c;榮獲第十八屆“中國芯”年度重大創新突破產品獎。 “中國芯”優…

ReentrantLock源碼解析

ReentrantLock源碼解析 文章目錄 ReentrantLock源碼解析一、ReentrantLock二、ReentrantLock 的 Sync、FairSync、NonfairSync2.1 Sync、FairSync、NonfairSync2.2 NonfairSync 下的 tryAcquire2.3 FairSync下的 tryAcquire2.4 tryRelease 三、lock.lock()3.1 NonfairSync.lock…

優橙內推青海專場——5G網絡優化(中高級)工程師

可加入就業QQ群&#xff1a;801549240 聯系老師內推簡歷投遞郵箱&#xff1a;hrictyc.com 內推公司1&#xff1a;浙江明訊網絡技術有限公司 內推公司2&#xff1a;南京華蘇科技有限公司 內推公司3&#xff1a;杭州華星創業通信技術有限公司 浙江明訊網絡技術有限公司 浙江明…

4.常見面試題--操作系統

特點&#xff1a;并發性、共享性、虛擬性、異步性。 Windows 和 Linux 內核差異 對于內核的架構?般有這三種類型&#xff1a; ● 宏內核&#xff0c;包含多個模塊&#xff0c;整個內核像?個完整的程序&#xff1b; ● 微內核&#xff0c;有?個最?版本的內核&#xff0…

名字大卻不中用的AI大模型,名不副實

這兩天 OpenAI 團隊&#xff08; ChatGPT 公司&#xff09;的戲比較多&#xff0c;兩三天的功夫&#xff0c;劇情發展都超出了 OpenAI 首席科學家的預期&#xff0c;目前來看&#xff0c;微軟還是最大的贏家。這是個引子&#xff0c;這個話題&#xff0c;網絡上早已傳爛了&…

云安全之盾:ZStack 云主機安全防護解決方案全方位保護云環境

隨著云計算的蓬勃發展&#xff0c;網絡威脅愈發復雜&#xff0c;涵蓋了從勒索病毒到APT攻擊的各種威脅類型。在這一風云變幻的網絡安全環境下&#xff0c;云主機安全不再僅僅是一個選項&#xff0c;它是信息系統安全的核心要素。云軸科技ZStack 云主機安全防護解決方案是為了滿…

6.3.WebRTC中的SDP類的結構

在上節課中呢&#xff0c;我向你介紹了sdp協議&#xff0c; 那這節課呢&#xff0c;我們再來看看web rtc中。是如何存儲sdp的&#xff1f;也就是sdp的類結構&#xff0c;那在此之前呢&#xff1f;我們先對sdp的內容啊&#xff0c;做一下分類。因為在上節課中呢&#xff0c;雖然…

Python+jieba+wordcloud實現文本分詞、詞頻統計、條形圖繪制及不同主題的詞云圖繪制

目錄 序言&#xff1a;第三方庫及所需材料函數模塊介紹分詞詞頻統計條形圖繪制詞云繪制主函數 效果預覽全部代碼 序言&#xff1a;第三方庫及所需材料 編程語言&#xff1a;Python3.9。 編程環境&#xff1a;Anaconda3&#xff0c;Spyder5。 使用到的主要第三方庫&#xff1a;…

python之pyqt專欄1-環境搭建

#python pyqt# python&#xff1a;3.11.6 pycharm&#xff1a;PyCharm Community Edition 2023.2.5 pyqt6 python安裝 官網下載&#xff1a;Python Releases for Windows | Python.org pycharm社區版安裝 官網地址&#xff1a;Download PyCharm: Python IDE for Professional…

golang學習筆記——創建項目

創建項目 從Go 1.8開始&#xff0c;將GOPATH設置為環境變量不是必需的。如果我們沒有設置一個&#xff0c;Go使用默認的GOPATH為$HOME/go。可以使用go env查看環境變量信息。 創建項目 # 創建項目目錄 mkdir helloLog cd helloLog # 使用go mod初始化項目,生成go.mod文件 go…

TikTok shop印尼重啟電商征程:與當地平臺合作開啟新篇章!——站斧瀏覽器

經歷了一個半月的間隔&#xff0c;TikTok Shop成功重返印度尼西亞市場。據國際媒體報道&#xff0c;TikTok計劃通過與印尼本地電子商務平臺的合作&#xff0c;重啟其在該國的電商業務。 Temmy Satya Permana&#xff0c;印尼合作社和中小企業部的官員&#xff0c;證實了這一重…