Leetcode——844.比較含退格的字符串——題解+代碼實現(使用vector的push_back和pop_back)

一、題目


給定 S 和 T 兩個字符串,當它們分別被輸入到空白的文本編輯器後,判斷二者是否相等,並返回結果。 # 代表退格字符。

 

示例 1:

輸入:S = "ab#c", T = "ad#c"
輸出:true
解釋:S 和 T 都會變成 “ac”。

示例 2:

輸入:S = "ab##", T = "c#d#"
輸出:true
解釋:S 和 T 都會變成 “”。

示例 3:

輸入:S = "a##c", T = "#a#c"
輸出:true
解釋:S 和 T 都會變成 “c”。

示例 4:

輸入:S = "a#c", T = "b"
輸出:false
解釋:S 會變成 “c”,但 T 仍然是 “b”。

 

提示:

  1. 1 <= S.length <= 200
  2. 1 <= T.length <= 200
  3. S 和 T 只含有小寫字母以及字符 '#'

二、題解思路


  •  題解思路:針對每個字符串進行如下處理然後進行比較:建立一個vector存取處理後的結果,如果遇到非#,則將字母存(push_back())到vector中,如果遇到#,此時vector非空,則刪除vector中的最後一個元素。

三、代碼實現


  •  C++代碼實現
{
public:
    bool backspaceCompare(string S, string T) 
    {
        if(backspace(S)==backspace(T))
            return true;
        return false;
    }
    vector<char> backspace(string K)   //處理函數
    {
        vector<char> nums;
        for(auto c:K)   //遍歷字符串
        {
            if(!nums.empty() && c == '#')    
                nums.pop_back();
            else if(c != '#')
                nums.push_back(c);    
        }
        return nums;
    }
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章