LeetCode 844 比较含退格的字符串
问题描述
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。
注意:如果对空文本输入退格字符,文本继续为空。
重构字符串
执行用时:2 ms, 在所有 Java 提交中击败了74.87%的用户
内存消耗:36.2 MB, 在所有 Java 提交中击败了99.88%的用户
class Solution {
public boolean backspaceCompare(String S, String T) {
//一次循环消除所有'#'
StringBuffer s = new StringBuffer(S);
StringBuffer t = new StringBuffer(T);
int curr = 0;
while(curr<s.length()) {
if(s.charAt(curr)=='#') {
if(curr==0) {
s.delete(curr, curr+1);
}
else {
s.delete(curr-1, curr+1);
curr--;
}
}
else {
curr++;
}
}
curr = 0;
while(curr<t.length()) {
if(t.charAt(curr)=='#') {
if(curr==0) {
t.delete(curr, curr+1);
}
else {
t.delete(curr-1, curr+1);
curr--;
}
}
else {
curr++;
}
}
if(s.length()!=t.length()) {
return false;
}
for(int i=0; i<s.length(); i++) {
if(s.charAt(i)!=t.charAt(i)) {
return false;
}
}
return true;
}
}