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

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

這篇具有很好參考價(jià)值的文章主要介紹了(棧和隊(duì)列) 1047. 刪除字符串中的所有相鄰重復(fù)項(xiàng) ——【Leetcode每日一題】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?1047. 刪除字符串中的所有相鄰重復(fù)項(xiàng)

難度:簡(jiǎn)單

給出由小寫字母組成的字符串 S,重復(fù)項(xiàng)刪除操作會(huì)選擇兩個(gè)相鄰且相同的字母,并刪除它們。

S 上反復(fù)執(zhí)行重復(fù)項(xiàng)刪除操作,直到無法繼續(xù)刪除。

在完成所有重復(fù)項(xiàng)刪除操作后返回最終的字符串。答案保證唯一。

示例:

輸入:“abbaca”
輸出:“ca”
解釋
例如,在 “abbaca” 中,我們可以刪除 “bb” 由于兩字母相鄰且相同,這是此時(shí)唯一可以執(zhí)行刪除操作的重復(fù)項(xiàng)。之后我們得到字符串 “aaca”,其中又只有 “aa” 可以執(zhí)行重復(fù)項(xiàng)刪除操作,所以最后的字符串為 “ca”。

提示

  • 1 <= S.length <= 20000
  • S 僅由小寫英文字母組成。

??思路:棧

遍歷字符串:

  • 當(dāng)前元素與棧頂元素(棧不為空時(shí))不相等時(shí)就壓入棧;
  • 相等時(shí),彈出棧頂元素;

可以拿字符串直接作為棧,這樣省去了棧還要轉(zhuǎn)為字符串的操作。

??代碼:(Java、C++)

Java

class Solution {
    public String removeDuplicates(String s) {
        StringBuffer ans = new StringBuffer();
        int top = -1;//存儲(chǔ)ans的長(zhǎng)度
        for(int i = 0; i < s.length(); i++){
            char c = s.charAt(i);
            if(top > -1 && ans.charAt(top) == c){
                ans.deleteCharAt(top);
                top--;
            }else{
                ans.append(c);
                top++;
            }
        }
        return ans.toString();
    }
}

C++

class Solution {
public:
    string removeDuplicates(string s) {
        string ans;
        for(char c : s){
            if(!ans.empty() && ans.back() == c){
                ans.pop_back();
            }else{
                ans.push_back(c);
            }
        }
        return ans;
    }
};
?? 運(yùn)行結(jié)果:

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

?? 復(fù)雜度分析:
  • 時(shí)間復(fù)雜度 O ( n ) O(n) O(n),其中 n 為字符串的長(zhǎng)度,我們只需要遍歷該字符串一次。
  • 空間復(fù)雜度 O ( 1 ) O(1) O(1),返回值不計(jì)空間復(fù)雜度。

題目來源:力扣。

放棄一件事很容易,每天能堅(jiān)持一件事一定很酷,一起每日一題吧!
關(guān)注我LeetCode主頁(yè) / CSDN—力扣專欄,每日更新!文章來源地址http://www.zghlxwxcb.cn/news/detail-481693.html

注: 如有不足,歡迎指正!

到了這里,關(guān)于(棧和隊(duì)列) 1047. 刪除字符串中的所有相鄰重復(fù)項(xiàng) ——【Leetcode每日一題】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包