消除相鄰字元

2021-10-08 02:54:00 字數 592 閱讀 2931

字串消消樂?

給定乙個字串,刪除相鄰兩個相同的字元。

例如:給定: 「abbabc」

輸出:「bc"

思路:1、乍一看,是不是應該挨個便利,每次遍歷消去原始就兩兩相鄰的,在第二遍來消除剩下的,直到沒有相同的,咋直到消除完了?直接看某一次長度不在變化,可能來個flag 輔助判斷。會遍歷幾次?兩兩相消,那麼最多字串的一半那麼多次。

2、想一想,其實遍歷那麼多次是不是不需要的,每次找到相鄰的以後,直接消除,消除後下乙個和之前沒有消除的比較,看相同不,直到到達字串結尾。剛好棧就可以完成這一任務

注意點:

1、棧空不能再取top() 所以取之前要判空,由於c++多個條件時候,條件從左向右,那麼只需要把判空放在前面就好。

2、最後拼結果的時候,直接用庫函式insert, 不用挨個加再轉置了。

**:

std::string delete_duplicated(std::string input_demo) 

std::string result = "";

while (!tmp.empty())

return result;

}

字串消除

給定乙個字串,僅由a,b,c 3種小寫字母組成。當出現連續兩個不同的字母時,你可以用另外乙個字母替換它,如 有ab或ba連續出現,你把它們替換為字母c 有ac或ca連續出現時,你可以把它們替換為字母b 有bc或cb 連續出現時,你可以把它們替換為字母a。你可以不斷反覆按照這個規則進行替換,你的目標是...

字串消除

題目詳情 給定乙個字串,僅由a,b,c 3種小寫字母組成。當出現連續兩個不同的字母時,你可以用另外乙個字母替換它,如 有ab或ba連續出現,你把它們替換為字母c 有ac或ca連續出現時,你可以把它們替換為字母b 有bc或cb 連續出現時,你可以把它們替換為字母a。你可以不斷反覆按照這個規則進行替換,...

字串消除

小hi最近在玩乙個字元消除遊戲。給定乙個只包含大寫字母 abc 的字串s,消除過程是如下進行的 1 如果s包含長度超過1的由相同字母組成的子串,那麼這些子串會被同時消除,餘下的子串拼成新的字串。例如 abccbcccaa 中 cc ccc 和 aa 會被同時消除,餘下 ab 和 b 拼成新的字串 a...