本题比较字符串相等,但是其中有退格键干扰,所以先使用栈处理掉退格键,再依次比较每一位字符是否相等,从而判断字符串是否相等。
下面是C++实现的代码:
class Solution {
public:
bool backspaceCompare(string s, string t) {
stack<char> s1, s2;
str2stack(&s1, &s);
str2stack(&s2, &t);
if (s1.size() != s2.size()) {
return false;
}
while (s1.size() > 0 && s1.top() == s2.top()) {
s1.pop();
s2.pop();
}
return s1.size() == 0;
}
void str2stack(stack<char> *s, string *t) {
for (auto i : *t) {
if (i == '#') {
if (s->size() > 0) {
s->pop();
}
} else {
s->push(i);
}
}
}
};