844.比较含退格的字符串

48 阅读1分钟

题目:
给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。

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

func backspaceCompare(s string, t string) bool {
	stackS := make([]byte, 0)
	stackT := make([]byte, 0)
	for i := range s {
		if s[i] == '#' {
			if len(stackS) > 0 {
				stackS = stackS[:len(stackS) - 1]
			}
		} else {
			stackS  = append(stackS, s[i])
		}
	}

	for i := range t {
		if t[i] == '#' {
			if len(stackT) > 0 {
				stackT = stackT[:len(stackT) - 1]
			}
		} else {
			stackT  = append(stackT, t[i])
		}
	}
	return string(stackS) == string(stackT)
}