Interview 150

Backspace String Compare

Problem
LC 844
File
interview150_LC844BackspaceStringCompare.java
Path
pkg5leetcode/interview150/interview150_LC844BackspaceStringCompare.java
Package
pkg5leetcode.interview150
Command
java pkg5leetcode/interview150/interview150_LC844BackspaceStringCompare.java
Approach
Build strings processing backspace from end with stack logic.
Complexity
Time O(n), Space O(n)

LeetCode solutions

There is no in-browser runner. This is the file from the curriculum, unchanged.

pkg5leetcode/interview150/interview150_LC844BackspaceStringCompare.java
1package pkg5leetcode.interview150;2 3/*4 * Backspace String Compare | LC 8445 * APPROACH: Build strings processing backspace from end with stack logic.6 * COMPLEXITY: Time O(n), Space O(n)7 */8public class interview150_LC844BackspaceStringCompare {9    static String build(String s) {10        StringBuilder sb = new StringBuilder();11        for (char c : s.toCharArray()) {12            if (c == '#') { if (sb.length() > 0) sb.deleteCharAt(sb.length() - 1); }13            else sb.append(c);14        }15        return sb.toString();16    }17 18    static boolean backspaceCompare(String s, String t) {19        return build(s).equals(build(t));20    }21 22    public static void main(String[] args) {23        check(backspaceCompare("ab#c", "ad#c"), "case1");24        check(!backspaceCompare("ab##", "c#d#"), "case2");25        System.out.println("all tests passed");26    }27 28    static void check(boolean cond, String name) {29        if (!cond) throw new AssertionError("FAILED: " + name);30        System.out.println("  PASS " + name);31    }32}