题目
给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,请你判断二者是否相等。# 代表退格字符。
如果相等,返回 true ;否则,返回 false 。
注意:如果对空文本输入退格字符,文本继续为空
示例
输入: s = "ab#c", t = "ad#c"
输出: true
解释: S 和 T 都会变成 “ac”。
解题思路
将两个字符串分别处理,设定一个方法,此方法接收一个字符串,定义一个队列,遍历字符串,如果是字符串则push进队列,如果是#号则pop一个字符串,最后返回数组连接成的字符串;最后对比两个字符串是否相等
/**
* @param {string} s
* @param {string} t
* @return {boolean}
*/
var backspaceCompare = function(s, t) {
// 定义对比函数,获取需要对比的结果字符串
const compare = (str) => {
const result = [];
let l = str.length;
// 个人比较喜欢使用数组的一些方法,所以将字符串转为数组,更易操作
str.split('').forEach(item => {
item === '#' ? result.pop() : result.push(item);
})
return result.join('');
}
// 返回结果
return compare(s) === compare(t);
};