力扣844.比较含退格的字符串
栈模拟
-
class Solution {public:bool backspaceCompare(string s, string t) {int n = s.size(),m = t.size();stack<char> s1,s2;for(int i=0;i<n;i++){s1.push(s[i]);if(s[i] == '#'){if(s1.size() == 1) s1.pop();else s1.pop(),s1.pop();}}for(int i=0;i<m;i++){s2.push(t[i]);if(t[i] == '#'){if(s2.size() == 1) s2.pop();else s2.pop(),s2.pop();}}return s1 == s2;}};
双指针
-
class Solution {public:string work(string s){int n = s.size();int fa=0,lo=0;for(;fa<n;fa++){if(s[fa] != '#')s[lo++] = s[fa];elseif(lo > 0) lo --;}return string(s,0,lo);}bool backspaceCompare(string s, string t) {s = work(s);t = work(t);return s == t;}};