ID | Title | Difficulty | |
---|---|---|---|
Loading... |
844. Backspace String Compare
Easy
LeetCode
Two Pointers, String, Stack, Simulation
Problem
Given two strings s and t, return true if they are equal when both are typed into empty text editors. ‘#’ means a backspace character.
Note that after backspacing an empty text, the text will continue empty.
Example 1:
Input: s = "ab#c", t = "ad#c"
Output: true
Explanation: Both s and t become "ac".
Example 2:
Input: s = "ab##", t = "c#d#"
Output: true
Explanation: Both s and t become "".
Example 3:
Input: s = "a##c", t = "#a#c"
Output: true
Explanation: Both s and t become "c".
Example 4:
Input: s = "a#c", t = "b"
Output: false
Explanation: s becomes "c" while t becomes "b".
Code
two pointer
class Solution {
public boolean backspaceCompare(String s, String t) {
int i = s.length() - 1, j = t.length() - 1;
while (i >= 0 || j >= 0) {
// ab##
int skipS = 0;
while (i >= 0) {
if (s.charAt(i) == '#') {
skipS++;
i--;
} else if (skipS > 0) {
skipS--;
i--;
} else {
break;
}
}
int skipT = 0;
while (j >= 0) {
if (t.charAt(j) == '#') {
skipT++;
j--;
} else if (skipT > 0) {
skipT--;
j--;
} else {
break;
}
}
// If two actual characters are different
if (i >= 0 && j >= 0 && s.charAt(i) != t.charAt(j)) {
return false;
}
// If expecting to compare char vs nothing
if ((i >= 0) != (j >= 0)) {
return false;
}
i--;
j--;
}
return true;
}
}
按 <- 键看上一题!
843. Guess the Word
按 -> 键看下一题!
845. Longest Mountain in Array