题目讲解
844. 比较含退格的字符串
算法讲解
使用栈模拟,但遇到#字符就让栈顶元素出栈,但是在写的过程中有两点需要注意:当#出现在第一个位置,需要特殊处理一下;当栈为空的时候,还出现#字符需要特殊处理一下
class Solution {
public:
bool backspaceCompare(string s, string t) {
string stack_s;
string stack_t;
for(int i = 0; i < s.size(); i++)
{
if(!stack_s.empty() && s[i] == '#')stack_s.pop_back();
else if(s[i] == '#' && stack_s.empty())continue;
else stack_s.push_back(s[i]);
}
for(int i = 0; i < t.size(); i++)
{
if(!stack_t.empty() && t[i] == '#')stack_t.pop_back();
else if(t[i] == '#' && stack_t.empty())continue;
else stack_t.push_back(t[i]);
}
return stack_s == stack_t;
}
};