正题
比较含退格的字符串
给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,请你判断二者是否相等。# 代表退格字符。
如果相等,返回 true ;否则,返回 false 。
注意: 如果对空文本输入退格字符,文本继续为空。
示例 1:
输入: s = "ab#c", t = "ad#c"
输出: true
解释: S 和 T 都会变成 “ac”。
过于简单,可以直接采用堆的方式实现:
/**
* @param {string} s
* @param {string} t
* @return {boolean}
*/
var f = function (s) {
let res = []
for (let index = 0 ; index < s.length; index++) {
if (s[index] === '#') {
res.pop()
} else {
res.push(s[index])
}
}
return res.join('')
}
var backspaceCompare = function(s, t) {
return f(s) === f(t)
};
原理: 字符串相当于一个堆,字符相当于堆中的元素,以这样的模型去遍历字符串中的字符,如果是字符那就push,如果是退格那就执行 pop