curTain

  1. 比较含退格的字符串

844. 比较含退格的字符串

给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。

注意:如果对空文本输入退格字符,文本继续为空。

示例 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”。

示例 4:

输入:S = “a#c”, T = “b”
输出:false
解释:S 会变成 “c”,但 T 仍然是 “b”。

解题思路

使用正则匹配,替换元素

注意

使用模式匹配符 g 时,正则会记录当前匹配的位置到 lastIndex 上,下次匹配时,会从 lastIndex 处开始匹配

测试

1
2
3
let reg = /.?#/g
let str = "ab##".replace( reg, "" )
console.log( str ) // a 第一次匹配 b# 第二次匹配 #

实现

1
2
3
4
5
6
7
8
9
10
var backspaceCompare = function(S, T) {
let reg = /.?#/
while( reg.test( S ) ){
S = S.replace( /.?#/, "" )
}
while( reg.test( T ) ){
T = T.replace( /.?#/, "" )
}
return S === T
};

 评论