给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,请你判断二者是否相等。# 代表退格字符。
如果相等,返回 true ;否则,返回 false 。
注意:如果对空文本输入退格字符,文本继续为空。
1. 解题思路
这题主要的在于怎么处理字符串中的退格字符得到最终的字符串,然后再比对两个字符串即可。可以利用数组处理即可。
- 首先,遍历字符串。
- 判断当前字符串是否是#。
- 如果不是将当前字符串加入到数组。
- 如果是删除当前数组的最后一项。
2. 实现代码
/**
* @param {string} s
* @param {string} t
* @return {boolean}
*/
var backspaceCompare = function(s, t) {
s = backspaceString(s);
t = backspaceString(t);
return s === t;
};
var backspaceString = function(s) {
const arr = [];
const len = s.length;
for(let i = 0; i < len; i++) {
if (s[i] === '#') {
arr.splice(arr.length - 1, 1);
} else {
arr.push(s[i]);
}
}
return arr.join('');
}