国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【LeetCode2696】刪除子串后的字符串最小長度

這篇具有很好參考價值的文章主要介紹了【LeetCode2696】刪除子串后的字符串最小長度。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、題目描述

【題目鏈接】
標簽: 、字符串、模擬
難度:簡單
給你一個僅由 大寫 英文字符組成的字符串 s 。
你可以對此字符串執(zhí)行一些操作,在每一步操作中,你可以從 s 中刪除 任一個 “AB” 或 “CD” 子字符串。
通過執(zhí)行操作,刪除所有 “AB” 和 “CD” 子串,返回可獲得的最終字符串的 最小 可能長度。
注意,刪除子串后,重新連接出的字符串可能會產(chǎn)生新的 “AB” 或 “CD” 子串。

示例 1:
輸入:s = “ABFCACDB”
輸出:2
解釋:你可以執(zhí)行下述操作:

  • 從 “ABFCACDB” 中刪除子串 “AB”,得到 s = “FCACDB” 。
  • 從 “FCACDB” 中刪除子串 “CD”,得到 s = “FCAB” 。
  • 從 “FCAB” 中刪除子串 “AB”,得到 s = “FC” 。
    最終字符串的長度為 2 。
    可以證明 2 是可獲得的最小長度。

示例 2:
輸入:s = “ACBBD”
輸出:5
解釋:無法執(zhí)行操作,字符串長度不變。

提示:
1 <= s.length <= 100
s 僅由大寫英文字母組成

2、基本思路

?這是一道簡單的字符串處理的題目,可以用棧模型上述的刪除的過程即可,值得注意的是,刪除子串后,重新連接出的字符串可能會產(chǎn)生新的 “AB” 或 “CD” 子串。

下面是利用棧對示例 1 模擬的過程:文章來源地址http://www.zghlxwxcb.cn/news/detail-796294.html

  • 初始化棧空;
  • 棧空,A入棧;
  • 當前元素B,與棧頂元素A,構(gòu)成子串AB,A出棧;
  • ??眨現(xiàn)入棧;
  • 當前元素C,棧頂元素F,構(gòu)不成子串,C入棧;
  • 當前元素A,棧頂元素C,構(gòu)不成子串,A入棧;
  • 當前元素C,棧頂元素A,構(gòu)不成子串,C入棧;
  • 當前元素D,棧頂元素C,構(gòu)成子串CD,C出棧;
  • 當前元素B,棧頂元素A,構(gòu)成子串AB,A出棧;
  • 字符串元素遍歷完畢,棧中元素的長度即為答案;

3、代碼實現(xiàn)


int minLength(string s) {
    stack<char> st;
    for(int i = 0;i<s.length();++i)
    {
        char c = s[i];
        if(st.empty())
            st.push(c);
        else
        {
            if(c=='D'&&st.top()=='C')
                st.pop();
            else if(c=='B'&&st.top()=='A')
                st.pop();
            else
                st.push(c);
        }
    }
    return st.size();    
}

到了這里,關(guān)于【LeetCode2696】刪除子串后的字符串最小長度的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 數(shù)據(jù)結(jié)構(gòu)與算法之字符串: Leetcode 696. 計數(shù)二進制子串 (Typescript版)

    計數(shù)二進制子串 https://leetcode.cn/problems/count-binary-substrings/ 描述 給定一個字符串 s,統(tǒng)計并返回具有相同數(shù)量 0 和 1 的非空(連續(xù))子字符串的數(shù)量,并且這些子字符串中的所有 0 和所有 1 都是成組連續(xù)的。 重復出現(xiàn)(不同位置)的子串也要統(tǒng)計它們出現(xiàn)的次數(shù)。 示例 1: 示

    2024年02月01日
    瀏覽(96)
  • 【LeetCode】583. 兩個字符串的刪除操作

    【LeetCode】583. 兩個字符串的刪除操作

    這道題的狀態(tài)定義和 1143. 最長公共子序列 相同,「定義一個 dp 數(shù)組,其中 dp[i]表示 到位置 i 為止的子序列性質(zhì) ,并不是必須以 i 結(jié)尾」,此時 dp 數(shù)組的最后一位即為題目所求,不需要對每個位置進行統(tǒng)計。 狀態(tài)定義 dp[i][j] 表示到 字符串word1 的第 i 個字符為止、word2 的第

    2024年02月06日
    瀏覽(15)
  • LeetCode | C++ 動態(tài)規(guī)劃——583. 兩個字符串的刪除操作、72. 編輯距離

    583題目鏈接 做法一: 本題和1143.最長公共子序列基本相同,只要求出兩個字符串的最長公共子序列長度即可,那么除了最長公共子序列之外的字符都是必須刪除的,最后用兩個字符串的總長度減去兩個最長公共子序列的長度就是刪除的最少步數(shù)。 做法二: 本題和115.不同的子

    2024年02月16日
    瀏覽(24)
  • 代碼隨想錄 Leetcode1047. 刪除字符串中的所有相鄰重復項

    代碼隨想錄 Leetcode1047. 刪除字符串中的所有相鄰重復項

    ? ? ? ? 時間復雜度高 ? ? ? ? 寫完代碼多思考怎么優(yōu)化

    2024年01月22日
    瀏覽(28)
  • (棧和隊列) 1047. 刪除字符串中的所有相鄰重復項 ——【Leetcode每日一題】

    (棧和隊列) 1047. 刪除字符串中的所有相鄰重復項 ——【Leetcode每日一題】

    難度:簡單 給出由小寫字母組成的字符串 S , 重復項刪除操作 會選擇兩個相鄰且相同的字母,并刪除它們。 在 S 上反復執(zhí)行重復項刪除操作,直到無法繼續(xù)刪除。 在完成所有重復項刪除操作后返回最終的字符串。答案保證唯一。 示例: 輸入 :“abbaca” 輸出 :“ca” 解釋

    2024年02月08日
    瀏覽(25)
  • 字符串解碼:給一個字符串,返回解碼后的字符串。

    字符串解碼:給一個字符串,返回解碼后的字符串。

    字符串解碼,給一個字符串s,返回解碼后的字符串。字符串編碼規(guī)則為k[str]表示括號內(nèi)部str字符串正好重復k次,k保證為整數(shù),并且輸入的字符串肯定符合這種編碼規(guī)則不會有額外的空格。 注意事項: 注意括號可能發(fā)生嵌套,例如輸入字符串為 3[a2[c]] 應(yīng)該返回accaccacc 1 = s

    2024年02月16日
    瀏覽(17)
  • c 取字符串中的子串

    strcpy(S.ch,ch1)?賦值函數(shù); 字符串沒特殊處理,就是從0開始的 %s輸出字符串,%c輸出字符

    2024年02月07日
    瀏覽(22)
  • 練習題 替換子串得到平衡字符串

    題目 有一個只含有? \\\'Q\\\', \\\'W\\\', \\\'E\\\',?\\\'R\\\' ?四種字符,且長度為? n ?的字符串。 假如在該字符串中,這四個字符都恰好出現(xiàn)? n/4 ?次,那么它就是一個「平衡字符串」。 給你一個這樣的字符串? s ,請通過「替換一個 子串 」的方式,使原字符串? s ?變成一個「平衡字符串」。

    2024年01月18日
    瀏覽(25)
  • C++ 字符串中找子串出現(xiàn)的個數(shù)。

    字符串中找子串出現(xiàn)的個數(shù)。 #include stdio.h #include string.h int find(char *s) { ? ?? ? ? char str[] = \\\"program\\\"; ? ? for (int i = 0; i strlen(str); i++) { ? ? ? ? if (s[i] != str[i]) ? ? ? ? ? ? return 0; ? ? } ? ? return 1; } ? void main() { ? ? char msg[100]; ? ? int i=0,cnt = 0; ? ? gets(msg); ? ? do { ? ? ?

    2024年01月20日
    瀏覽(22)
  • 代碼隨想錄第十一天 | ??????LeetCode 20. 有效的括號、??????LeetCode 1047. 刪除字符串中的所有相鄰重復項、??????LeetCode 150. 逆波蘭表達式求

    代碼隨想錄第十一天 | ??????LeetCode 20. 有效的括號、??????LeetCode 1047. 刪除字符串中的所有相鄰重復項、??????LeetCode 150. 逆波蘭表達式求

    目錄 ??????LeetCode 20.?有效的括號 文章講解:代碼隨想錄(programmercarl.com) 視頻講解:棧的拿手好戲!| LeetCode:20. 有效的括號_嗶哩嗶哩_bilibili 思路 ??????LeetCode 1047.?刪除字符串中的所有相鄰重復項 文章講解:代碼隨想錄(programmercarl.com) 視頻講解:棧的好戲還

    2024年02月22日
    瀏覽(36)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包