好多同学说这是双指针法,但是我认为叫它顺手牵羊法更合适😉
妙!
原题链接: 844. 比较含退格的字符串 - 力扣(LeetCode)
注意里面的
s++ s-- i--操作
class Solution { public: bool backspaceCompare(string S, string T) { int s = 0; // 记录S的#数量 int t = 0; // 记录T的#数量 int i = S.size() - 1; int j = T.size() - 1; while (1) { while (i >= 0) // 从后向前,消除S的# { if (S[i] == '#') s++; else { if (s > 0) s--; else break;//没有#了,直接跳出 } i--; //这里顺便i--了 } while (j >= 0) // 从后向前,消除T的# { if (T[j] == '#') tSkipNum++; else { if (t > 0) tSkipNum--; else break; } j--; //这里顺便j--了 } if (i < 0 || j < 0) break; if (S[i] != T[j]) { return false; } i--;j--; //接着往前遍历 } // 说明S和T同时遍历完毕 if (i == -1 && j == -1)//细节 -1 { return true; } return false; } };