Skip to content

Latest commit

 

History

History
92 lines (66 loc) · 2.5 KB

844-backspace-string-compare.md

File metadata and controls

92 lines (66 loc) · 2.5 KB

844. Backspace String Compare - 比较含退格的字符串

给定 ST 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。

 

示例 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. ST 只含有小写字母以及字符 '#'

 


题目标签:Stack / Two Pointers

题目链接:LeetCode / LeetCode中国

题解

Language Runtime Memory
cpp 4 ms 8.7 MB
class Solution {
public:
    void toStack(string& s, stack<char>& stk) {
        for (char c : s) {
            if (c == '#') {
                if (!stk.empty()) {
                    stk.pop();
                }
            } else {
                stk.push(c);
            }
        }
    }
    
    bool backspaceCompare(string S, string T) {
        stack<char> ss, st;
        toStack(S, ss);
        toStack(T, st);
        while (!ss.empty() && !st.empty()) {
            char a = ss.top(); ss.pop();
            char b = st.top(); st.pop();
            if (a != b) return false;
        }
        if (ss.empty() && st.empty()) return true;
        else return false;
    }
};