给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。
注意:如果对空文本输入退格字符,文本继续为空。
提示:
1 <= s.length, t.length <= 200
s
和t
只含有小写字母以及字符'#'
-
class Solution { public boolean backspaceCompare(String s, String t) { int n = s.length() - 1; int m = t.length() - 1; int nskip = 0; int mskip = 0; while(n >= 0 || m >= 0){ while(n >= 0){ if(s.charAt(n) == '#'){ nskip++; n--; }else if(nskip > 0){ nskip--; n--; }else if(s.charAt(n) != '#' || nskip == 0){ //满足条件时与t中元素进行比较 break; } } while(m >= 0){ if(t.charAt(m) == '#'){ mskip++; m--; }else if(mskip > 0){ mskip--; m--; }else{ break; } } if(n >= 0 && m >= 0){ //此时s,t中都还有元素 if(s.charAt(n) != t.charAt(m)){ return false; } }else{ //s,t中只有一方没有元素 if(n >= 0 || m >= 0){ return false; } } n--; m--; } //此时s,t中都没元素,已经比较完了 return true; } }