09 Sept 2026Go / Python / TypeScriptEasy

Backspace String Compare

Check whether two typed strings are equal after applying backspace characters.

Build each final string with a stack, popping when a backspace has a preceding character, then compare the results.

complexity

O(n + m) time and O(n + m) space.

solution files

  • Go backspace-string-compare/solution.go
  • Python backspace-string-compare/solution.py
  • TypeScript backspace-string-compare/solution.ts

Solution files

Gobackspace-string-compare/solution.go
package main

func backspaceCompare(s string, t string) bool {
	build := func(value string) string {
		output := []byte{}
		for index := range value {
			if value[index] == '#' {
				if len(output) > 0 {
					output = output[:len(output)-1]
				}
			} else {
				output = append(output, value[index])
			}
		}
		return string(output)
	}
	return build(s) == build(t)
}
Pythonbackspace-string-compare/solution.py
class Solution:
    def backspaceCompare(self, s: str, t: str) -> bool:
        def build(value: str) -> str:
            output: list[str] = []
            for character in value:
                if character == class="syntax-string">"class="syntax-commentclass="syntax-string">">#":
                    if output: output.pop()
                else: output.append(character)
            return class="syntax-string">"".join(output)
        return build(s) == build(t)
TypeScriptbackspace-string-compare/solution.ts
function backspaceCompare(s: string, t: string): boolean {
  const build = (value: string): string => { const output: string[] = []; for (const character of value) { if (character === class="syntax-string">"class="syntax-commentclass="syntax-string">">#") output.pop(); else output.push(character); } return output.join(class="syntax-string">""); };
  return build(s) === build(t);
}