题目:
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。
注意:如果对空文本输入退格字符,文本继续为空。
class Solution {
/*
使用了一个辅助函数来进行判断
辅助函数中用的双指针典型思路,然后在主函数中进行最后的判断。
*/
public:
bool backspaceCompare(string s, string t)
{
int len1 = isLegal(s);
int len2 = isLegal(t);
if(len1 != len2) return false;
else
{
for(int i = 0; i < len1; ++i)
{
if(s[i] != t[i]) return false;
}
}
return true;
}
private:
int isLegal(string& s)
{
int slow = 0;
for(int fast = 0; fast < s.size(); ++fast)
{
if(s[fast] != '#')
{
if(fast != slow) s[slow] = s[fast];
slow++;
}
else if(slow > 0) slow--;
}
return slow;
}
};