844. 比较含退格的字符串
给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,请你判断二者是否相等。# 代表退格字符。
如果相等,返回 true ;否则,返回 false 。
注意:如果对空文本输入退格字符,文本继续为空。
示例 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 = "#a#c"
输出: true
解释: s 和 t 都会变成 “c”。
提示:
1 <= s.length, t.length <= 200s和t只含有小写字母以及字符'#'
重构字符串
思路
按照题意我们将字符串中的#以及前面的字符除掉得到最终真正有效的字符串然后进行对比
写一个处理字符串的函数
- 函数中声明一个新变量newStr用来保存新的字符串
- 遍历字符串,遇到#的时候我们将newStr的最后以为截掉,遇到其它的则是正常字符串直接加在字符串末尾
用函数处理两个字符串进行比较
var backspaceCompare = function (s, t) {
function dealStr(str) {
var index = 0;
var newStr = ''
while (index < str.length) {
var item = str[index];
if (item === '#' && newStr.length > 0) {
newStr = newStr.slice(0, newStr.length - 1)
}
if (item !== '#') {
newStr += item
}
index++
}
return newStr
}
if (dealStr(s) === dealStr(t)) {
return true
}
return false
};