题目: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数组加游标模拟栈来实现,原理一样。