leecode844比较含有退格的字符串
代码分析
暴力解法
class Solution {
public boolean backspaceCompare(String s, String t) {
int s_length=s.length();
int t_length=t.length();
char[] ch1 = new char[s_length];
char[] ch2 = new char[t_length];
int fast=0,low=0;
for(fast=0;fast<s_length;fast++){
if(s.charAt(fast)!='#'){
ch1[low] = s.charAt(fast);
low++;
}else {
low--;
ch1[low]='\u0000';
}
}
low=0;
for(fast=0;fast<t_length;fast++){
if(t.charAt(fast)!='#'){
ch2[low] = t.charAt(fast);
low++;
}else {
low--;
ch1[low]='\u0000';
}
}
fast= 0;
low=0;
while(ch1[fast]!='\u0000'&&ch2[low]!='\u0000'){
if(ch1[fast]!=ch2[low]){
return false;
}
fast++;
low++;
}
if(ch1[fast]=='\u0000'&&ch2[low]=='\u0000'){
return false;
}
return true;
}
建立stringBuilder快速模拟栈的操作
StringBuilder ssb = new StringBuilder();
StringBuilder tsb = new StringBuilder();
for (char c : s.toCharArray()) {
if (c != '#') {
ssb.append(c);
} else if (ssb.length() > 0){
ssb.deleteCharAt(ssb.length() - 1);
}
}
for (char c : t.toCharArray()) {
if (c != '#') {
tsb.append(c);
} else if (tsb.length() > 0){
tsb.deleteCharAt(tsb.length() - 1);
}
}
return ssb.toString().equals(tsb.toString());