Given two strings S
and T
, return if they are equal when both are typed into empty text editors. #
means a backspace character.
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".
思路:就是考察stack的用法;
class Solution {
public boolean backspaceCompare(String s, String t) {
Stack<Character> sstack = new Stack<>();
Stack<Character> tstack = new Stack<>();
String sstring = pushStack(sstack, s);
String tstring = pushStack(tstack, t);
return sstring.equals(tstring);
}
private String pushStack(Stack<Character> stack, String s) {
for(int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if(stack.isEmpty() || c != '#') {
stack.push(c);
}
if(c == '#' && !stack.isEmpty()) {
stack.pop();
}
}
StringBuilder sb = new StringBuilder();
while(!stack.isEmpty()) {
sb.insert(0, stack.pop());
}
return sb.toString();
}
}