好多同学说这是双指针法,但是我认为叫它顺手牵羊法更合适😉
妙!
原题链接: 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;
}
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/131434.html