145.棧和隊列:刪除字符串中的所有相鄰重復項(力扣)

題目描述

代碼解決

class Solution {
public:string removeDuplicates(string s) {// 定義一個棧來存儲字符stack<char> st;// 遍歷字符串中的每一個字符for(int i = 0; i < s.size(); i++){// 如果棧為空或棧頂字符與當前字符不相同,則將當前字符入棧if(st.empty() || st.top() != s[i]){st.push(s[i]);}// 如果棧頂字符與當前字符相同,則彈出棧頂字符,表示刪除這兩個重復的字符else{st.pop();}}// 定義結果字符串string result = "";// 將棧中剩余的字符依次彈出,形成結果字符串while(!st.empty()){result += st.top();st.pop();}// 由于棧彈出順序是逆序的,所以需要將結果字符串反轉reverse(result.begin(), result.end());// 返回最終的結果字符串return result;}
};
  1. 定義棧

    • stack<char> st;
    • 使用棧來存儲字符,方便檢查和刪除相鄰且重復的字符。
  2. 遍歷字符串

    • for(int i = 0; i < s.size(); i++)
    • 遍歷字符串的每一個字符。
  3. 處理字符

    • if(st.empty() || st.top() != s[i])
      • 如果棧為空或者棧頂字符與當前字符不相同,則將當前字符入棧。
    • else { st.pop(); }
      • 如果棧頂字符與當前字符相同,則彈出棧頂字符,表示刪除這兩個重復的字符。
  4. 構建結果字符串

    • string result = "";
    • 定義一個結果字符串,用于存儲棧中的字符。
  5. 將棧中的字符彈出并添加到結果字符串中

    • while(!st.empty()) { result += st.top(); st.pop(); }
    • 將棧中剩余的字符依次彈出,形成結果字符串。
  6. 反轉結果字符串

    • reverse(result.begin(), result.end());
    • 由于棧的彈出順序是逆序的,所以需要將結果字符串反轉。
  7. 返回最終結果

    • return result;
    • 返回處理后的字符串。

代碼解決二?

class Solution {
public:string removeDuplicates(string s) {// 定義一個字符串變量result,用于存儲處理后的字符string result;// 遍歷輸入字符串s中的每一個字符for(char a : s){// 如果result為空或result的最后一個字符與當前字符a不相同,則將字符a添加到result的末尾if(result.empty() || result.back() != a){result.push_back(a);}// 如果result的最后一個字符與當前字符a相同,則將result的最后一個字符刪除else{result.pop_back();}}// 返回處理后的字符串resultreturn result;}
};
  1. 定義結果字符串

    • string result;
    • 使用一個字符串變量 result 來存儲處理后的字符。
  2. 遍歷輸入字符串

    • for(char a : s)
    • 遍歷輸入字符串 s 中的每一個字符 a
  3. 處理字符

    • if(result.empty() || result.back() != a)
      • 如果 result 為空或者 result 的最后一個字符與當前字符 a 不相同,則將字符 a 添加到 result 的末尾。
    • else { result.pop_back(); }
      • 如果 result 的最后一個字符與當前字符 a 相同,則將 result 的最后一個字符刪除。
  4. 返回最終結果

    • return result;
    • 返回處理后的字符串 result

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

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

相關文章

Jenkins的Pipeline流水線

目錄 前言 流水線概念 什么是流水線 Jenkins流水線 pipeline node stage step 創建一個簡單的流水線 創建Pipeline項目 選擇模板 測試 前言 提到 CI 工具&#xff0c;首先想到的就是“CI 界”的大佬——Jenkjns,雖然在云原生爆發的年代,蹦出來了很多云原生的 CI 工具…

Hive的窗口函數

定義&#xff1a; 聚合函數是針對定義的行集(組)執行聚集,每組只返回一個值.如sum()、avg()、max() 窗口函數也是針對定義的行集(組)執行聚集,可為每組返回多個值.如既要顯示聚集前的數據,又要顯示聚集后的數據.步驟&#xff1a; 1.將記錄分割成多個分區. 2.在各個分區上調用窗…

word-表格疑難雜癥診治

一、用表格進行排版圖片、制作公文頭 可以在插入圖片時固定列寬 二、表格中的疑難雜癥 問題一&#xff1a;表格超過頁面&#xff0c;右側文字看不見 解決&#xff1a;表格窗口-布局-自動調整-根據窗口自動調整表格 問題二&#xff1a;表格底部文字被遮擋 解決&#xff1a;布…

ArcGIS Maps SDK for JS:使用queryFeatures方法查詢 FeatureLayer 中符合條件的要素

文章目錄 方式一&#xff1a;使用featureLayer.createQuery()方法方式二&#xff1a;使用 Query 構造函數方式三&#xff1a;簡化寫法 要想查詢FeatureLayer 圖層中滿足某些條件的要素&#xff0c;可以使用ArcGIS API for JavaScript 提供的queryFeatures() 方法和 Query 對象進…

【linux】yumvim工具理解使用

目錄 Linux 軟件包管理器 yum 關于 rzsz 注意事項 查看軟件包 Linux開發工具 Linux編輯器-vim使用 vim的基本概念 vim的基本操作 vim正常模式命令集 vim末行模式命令集 簡單vim配置 配置文件的位置 sudo提權 Linux 軟件包管理器 yum 1.yum是什么&#xff1…

攻防世界---web---warmup

1、題目描述 2、查看源碼&#xff0c;發現有個source.php 3、訪問該文件&#xff0c;得到這一串代碼 4、分析代碼 5、訪問hint.php&#xff0c;提示flag在ffffllllaaaagggg這個文件下 6、構造payload ?filesource.php?/../../../../../../ffffllllaaaagggg

Fitting Parameterized Three-Dimensional Models to Images

摘要 基于模型的識別和運動跟蹤依賴于解決投影和模型參數&#xff0c;使其最佳適應匹配的2D圖像特征的3D模型的能力。本文將當前的參數求解方法擴展到處理具有任意曲面和任意數量的內部參數&#xff08;表示關節、可變尺寸或表面變形&#xff09;的對象。開發了數值穩定化方法…

懶人網址導航頁 search.html SQL注入漏洞復現

0x01 產品簡介 懶人網址導航系統是一種智能化的網址導航平臺,旨在幫助用戶快速找到所需的網址和資源。該系統提供了智能化的網址搜索和推薦功能,能夠根據用戶的搜索習慣和偏好推薦相關的網址和資源。同時,系統還提供了網址分類、網址收藏和網址分享等功能,方便用戶管理和共…

git常見的18條指令

使用git的時候有沒有遺忘指令的情況呢&#xff1f;小編替大家整理出來了18條常用的指令&#xff0c;大家趕緊收藏起來吧&#xff01; gti常見的18條指令 序號指令含義1git init初始化一個倉庫2git clone [url]克隆一個倉庫3git add [file]添加文件到暫存區4git commit -m "…

簡易Docker磁盤使用面板Doku

這個項目似乎有 1 年多沒更新了&#xff0c;最后發布版本的問題也沒人修復&#xff0c;所以看看就行&#xff0c;不建議安裝 什么是 Doku &#xff1f; Doku 是一個簡單、輕量級的基于 Web 的應用程序&#xff0c;允許您以用戶友好的方式監控 Docker 磁盤使用情況。Doku 顯示 D…

easyexcel導出動態標題,以及動態設置下拉選擇,并設置下拉選擇校驗

目錄 1.說明 2.示例 3.總結 1.說明 平時使用easyexcel進行導出時&#xff0c;標題的名字通過在表的實體類上添加注解的方式進行實現&#xff0c;然后傳入表的實體類的集合進行下載即可。 有這么一個需求&#xff0c;用戶可以自定義導出的模板&#xff0c;也就是說導出的模板…

南京沁恒微USB HUB CH334/CH335多種封裝規格選擇,外圍簡單,價格還美麗

概述&#xff1a; CH334 和 CH335 是符合 USB2.0 協議規范的 全速&#xff0c;下行端口支持 USB2.0 高速 480Mbps 個 TT 分時調度 4 個下行端口&#xff09;&#xff0c;還支持高性能的 工業級設計&#xff0c;外圍精簡&#xff0c;可應用于計算機和工控機主板 特點&#xff1…

精品UI響應式視頻教程知識付費系統源碼在線教育網絡課程在線點播可二開分銷分站功能

這是一款知識付費平臺模板&#xff0c;后臺可上傳本地視頻&#xff0c;批量上傳視頻連接&#xff0c; 視頻后臺可設計權限觀看&#xff0c;免費試看時間時長&#xff0c;會員等級觀看&#xff0c;付費觀看等功能&#xff0c; 也帶軟件app權限下載&#xff0c;幫助知識教育和軟件…

域名郵箱是什么?怎么注冊公司的域名郵箱?

擁有一個專業、獨特的郵箱地址不僅能提升企業形象&#xff0c;還能增強客戶信任感。域名郵箱是什么&#xff1f;域名郵箱也稱為企業郵箱或定制郵箱&#xff0c;是一種基于企業自主域名設置的電子郵件服務。本文將詳細介紹域名郵箱的概念、優勢以及如何注冊公司的域名郵箱 一、…

事務的ACID是什么及扁平化事務、鏈式事務

一、什么是事務 1.事務&#xff08;Transaction)是區別于數據庫文件系統的重要特性之一。事務會把數據庫從一種一致狀態轉換為另一種一致狀態。在數據庫提交工作時&#xff0c;可以確保要么所有修改都已經保存&#xff0c;要么所有修改都不保存。 2.InnoDB存儲引擎中的事物完…

WPF實現搜索文本高亮

WPF實現搜索文本高亮 1、使用自定義的TextBlock public class HighlightTextblock : TextBlock{public string DefaultText { get; set; }public string HiText{get { return (string)GetValue(HiTextProperty); }set { SetValue(HiTextProperty, value); }}// Using a Depend…

31.@Anonymous

1?@Anonymous原理 大家應該已經習慣我的教學套路,很多時候都是先使用,然后講述原理。 上節課我們使用了注解@Anonymous,然后接口就可以直接被訪問到了,不用token!不用token!不用token!。 我們一般知道,注解是給程序看的,給機器看的,當然也是給程序員看的。注解如果…

詳解HTML

目錄 1.HTML 結構 1.1認識HTML標簽 1.2標簽層次結構 1.3快速生成代碼框架 2.HTML常見標簽 2.1注釋標簽 2.2標題標簽&#xff1a;h1-h6 2.3段落標簽&#xff1a;p 2.4換行標簽&#xff1a;br 2.5格式化標簽 2.6圖片標簽&#xff1a;img 2.7超鏈接標簽 2.8表格標簽…

全域運營是本地生活的下半場?新的創業風口來了?

隨著全域概念的興起&#xff0c;全域運營賽道也逐漸進入人們的視野之中&#xff0c;甚至有業內人士預測&#xff0c;全域運營將會是本地生活下半場的大趨勢。 之所以這么說&#xff0c;是因為全域運營作為包含了公域和私域內所有運營業務的新模式&#xff0c;不僅能同時做所有本…

設計模式-解釋器模式

作者持續關注 WPS二次開發專題系列&#xff0c;持續為大家帶來更多有價值的WPS開發技術細節&#xff0c;如果能夠幫助到您&#xff0c;請幫忙來個一鍵三連&#xff0c;更多問題請聯系我&#xff08;QQ:250325397&#xff09; 定義 解釋器模式&#xff08;Interpreter Pattern&…