题目
给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。
注意:如果对空文本输入退格字符,文本继续为空。
示例 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 = "b" 输出:false 解释:s 会变成 "c",但 t 仍然是 "b"。
解题
方法一:栈
class Solution { public: bool backspaceCompare(string s, string t) { stack<char> st1; stack<char> st2; for(char c:s){ if(c=='#'){ if(st1.empty()) continue; st1.pop(); }else{ st1.push(c); } } for(char c:t){ if(c=='#'){ if(st2.empty()) continue; st2.pop(); }else{ st2.push(c); } } while(!st1.empty()&&!st2.empty()){ if(st1.top()!=st2.top()) return false; st1.pop(); st2.pop(); } if(!st1.empty()||!st2.empty()) return false; return true; } };