048 · Backspace String Compare

algorithm
Published

June 30, 2026

Problem

给定两个字符串 st

字符串中可能包含普通小写字母,也可能包含字符 "#"

"#" 表示退格键:它会删除前面最近的一个字符。

如果 "#" 前面已经没有字符可以删除,那么这个 "#" 什么也不会删除。

请判断:两个字符串分别执行完所有退格操作以后,最终得到的字符串是否相同。

如果相同,返回:

true

否则返回:

false

例如:

s = "ab#c"
t = "ad#c"

s 执行退格后:

"ab#c" -> "ac"

t 执行退格后:

"ad#c" -> "ac"

两个最终字符串都是 "ac",所以答案是:

true

Examples

示例 1

Input:  s = "ab#c", t = "ad#c"
Output: true

解释:st 执行退格以后都变成 "ac"

示例 2

Input:  s = "ab##", t = "c#d#"
Output: true

解释:"ab##" 会删除 ba,最终是空字符串;"c#d#" 会删除 cd,最终也是空字符串。

示例 3

Input:  s = "a#c", t = "b"
Output: false

解释:"a#c" 执行退格以后变成 "c",而 t 仍然是 "b",两者不同。

Constraints

  • \(1 \leq\) s.length, t.length \(\leq 200\)
  • st 只包含小写英文字母和字符 "#"