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)
There is no in-browser runner. This is the file from the curriculum, unchanged.
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}