持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情
s1-数组-4
力扣第844号问题
#1.上题目
#2.分析
我们继续使用双指针法来进行操作
我们在这看下我们的核心函数,我们在这里还是使用的快慢指针的写法
首先我们先定义好快慢指针slow和fast
string Fin(string s)
{
int slow = 0;
for (int fast = 0; fast < s.size(); fast++)
{
if (s[fast] == '#')
{
if (slow > 0) //这一步我们要注意当slow为0是就不能再减了
slow--;
}
else
s[slow++] = s[fast];
}
return s.substr(0,slow);
}
#3.上代码
class Solution
{
public:
bool backspaceCompare(string s, string t)
{
//使用快慢指针来进行解决
string s_fin = "";
string t_fin = "";
s_fin = Fin(s);
t_fin = Fin(t);
if (s_fin != t_fin)
{
return false;
}
return true;
}
//核心函数
string Fin(string s)
{
int slow = 0;
for (int fast = 0; fast < s.size(); fast++)
{
if (s[fast] == '#')
{
if (slow > 0)
slow--;
}
else
s[slow++] = s[fast];
}
return s.substr(0,slow);
}
};
\