844. 比较含退格的字符串
给定 s
和 t
两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true
。#
代表退格字符。
注意:如果对空文本输入退格字符,文本继续为空。
示例 1:
输入:s = "ab#c", t = "ad#c" 输出:true 解释:s 和 t 都会变成 "ac"。
示例 2:
输入:s = "ab##", t = "c#d#" 输出:true 解释:s 和 t 都会变成 ""。
示例 3:
输入:s = "a#c", t = "b" 输出:false 解释:s 会变成 "c",但 t 仍然是 "b"。
一道比较麻烦的简单题,对于此类问题可以使用快慢指针的方法来做,这里由于要使用两次,所以就先写一个快慢指针的函数,然后调用,这样会方便一些。这题看代码应该就能理解到思想,下面展示C++代码:
class Solution {
public:string Find_Ans(string str){int slow = 0;int len = str.length();for(int fast = 0;fast < len;fast++){if(str[fast] != '#'){str[slow++] = str[fast];}else{if(slow>0){slow--;}}}string ans(str,0,slow);return ans;}bool backspaceCompare(string s, string t) {string s_ans = Find_Ans(s);string t_ans = Find_Ans(t);if(s_ans == t_ans){return true;}return false;}
};