844. 比较含退格的字符串

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