【Leetcode】844. 比較含退格字串
阿新 • • 發佈:2018-12-18
題目描述:
給定 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 <= S.length <= 200
1 <= T.length <= 200
S
和T
只含有小寫字母以及字元'#'
。
解題思路:
這種題目,第一時間就想到用棧來實現,所以就這樣做了。
AC程式碼:
class Solution { public: bool backspaceCompare(string S, string T) { stack<char> s; stack<char> t; string s1; string t1; for (int i = 0; i < S.size(); i++) { if (S[i] != '#') { s.push(S[i]); } else if (!s.empty()) { s.pop(); } } for (int i = 0; i < T.size(); i++) { if (T[i] != '#') { t.push(T[i]); } else if (!t.empty()) { t.pop(); } } while (!s.empty()) { s1 += s.top(); s.pop(); } while (!t.empty()) { t1 += t.top(); t.pop(); } return s1 == t1 ? true : false; } };