Backspace String Compare 比较含退格的字符串
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。
注意:如果对空文本输入退格字符,文本继续为空。
Input: S = "ab##", T = "c#d#"
Output: true
Explanation: Both S and T become "".
思路
利用2个stack,分别将S,T的字符串进行处理,最后,在将2个stack里面的元素pop比较
public void transform(String str , Stack<Character> s){
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c=='#'&&!s.isEmpty()){
s.pop();
}
else if(c!='#'){
s.push(c);
}
}
return;
}
public boolean backspaceCompare(String S, String T) {
Stack<Character> s = new Stack<>();
Stack<Character> t = new Stack<>();
transform(S,s);
transform(T,t);
if (s.size()!=t.size()){
return false;
}
while(!s.isEmpty()&&!t.isEmpty()){
if (!s.pop().equals(t.pop())) {
return false;
}
}
return true;
}
Tag
Stack