Leetcode844.Backspace String Compare比較含退格的字串
阿新 • • 發佈:2018-12-20
給定 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 只含有小寫字母以及字元 '#'。
class Solution { public: bool backspaceCompare(string S, string T) { int len1 = S.size(); int len2 = T.size(); vector<char> str1(len1, 0); vector<char> str2(len2, 0); int cnt1 = 0; int cnt2 = 0; for(int i = 0; i < len1; i++) { if(S[i] == '#' && cnt1 > 0) { cnt1--; continue; } if(S[i] != '#') str1[cnt1++] = S[i]; } for(int i = 0; i < len2; i++) { if(T[i] == '#' && cnt2 > 0) { cnt2--; continue; } if(T[i] != '#') str2[cnt2++] = T[i]; } if(cnt1 != cnt2) return false; for(int i = 0; i < cnt1; i++) { if(str1[i] != str2[i]) return false; } return true; } };