题目:https://leetcode-cn.com/problems/backspace-string-compare/
代码:
class Solution {
public boolean backspaceCompare(String S, String T) {
char[] s = new char[S.length()];
char[] t = new char[T.length()];
int sl = 0;
int tl = 0;
//转换S
for (int i = 0; i < S.length(); i++) {
char c = S.charAt(i);
if (c != '#') {
//输入
s[sl++] = c;
} else if (sl > 0) {
//退格
sl--;
}
}
//转换T
for (int i = 0; i < T.length(); i++) {
char c = T.charAt(i);
if (c != '#') {
//输入
t[tl++] = c;
} else if (tl > 0) {
//退格
tl--;
}
}
//对比是否一致
if (sl != tl) {
return false;
}
for (int i = 0; i < sl; i++) {
if (s[i] != t[i]) {
return false;
}
}
return true;
}
}
题目相当于键盘输入,问最后输入的结果是否一样。直接使用栈即可解决,上述代码没有直接使用java的栈类,而是直接用两个char数组加游标模拟栈来实现,原理一样。