题目描述:给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。
代码分析:内嵌的两个while循环先消掉#字符。
代码:
class Solution {
public:
bool backspaceCompare(string s, string t) {
int i=s.length()-1,j=t.length()-1,back;
while(true){
back=0;
while(i>=0&&(back>0||s[i]=='#')){
back+=s[i]=='#' ? 1:-1;
i--;
}
back=0;
while(j>=0&&(back>0||t[j]=='#')){
back+=t[j]=='#'?1:-1;
j--;
}
if(i>=0&&j>=0&&s[i]==t[j]){
i--;
j--;
}else{
break;
}
}
return i==-1&&j==-1;
}
};