844. Backspace String Compare
解析
正如说见,第一次末尾,第二次100%。为什么呢,因为第一次我强行使用stack.但是效果很差。我明白了一个道理:stack是一种思想,而不是一种数据结构。就好像济公说的酒肉穿肠过 佛祖心中留,你用的不是stack,而是用的stack这种方法,思想( ̄▽ ̄)”
solution:
class Solution {
public:
bool backspaceCompare(string S, string T) {
stack<char> Stack;
for(int i=0;i<S.size();i++){
if(S.at(i) == '#'){
if(!Stack.empty())
Stack.pop();
}
else
Stack.push(S.at(i));
}
stack<char> Stack2;
for(int i=0;i<T.size();i++){
if(T.at(i) == '#'){
if(!Stack2.empty())
Stack2.pop();
}
else
Stack2.push(T.at(i));
}
if(Stack.size() == Stack2.size()){
int size = Stack.size();
while(size--){
if(Stack.top() == Stack2.top()){
Stack.pop();
Stack2.pop();
}
else
return false;
}
return true;
}
return false;
}
};
solution:
class Solution {
public:
bool backspaceCompare(string S, string T) {
string s,t;
for(auto x:S){
if(x == '#'){
if(!s.empty())
s.pop_back();
}
else
s.push_back(x);
}
for(auto x:T){
if(x == '#'){
if(!t.empty())
t.pop_back();
}
else
t.push_back(x);
}
return s==t;
}
};