栈-E844-比较含退格的字符串

2019-03-24  本文已影响0人  三次元蚂蚁

题目

退格表示自己本身和靠近它左侧的第一个字符(如果有的话)是无效字符

  1. 字符串S,范围[1, 200]
  2. 字符串T,范围[1, 200]

S和T只含有小写字符和退格字符'#'

思路

代码

class Solution {
    public boolean backspaceCompare(String S, String T) {
        LinkedList<Character> sStack = new LinkedList<>();
        LinkedList<Character> tStack = new LinkedList<>();
        for (char c : S.toCharArray()) {
            if (c == '#') {
                if (!sStack.isEmpty()) {
                    sStack.pop();
                }
            } else {
                sStack.push(c);
            }
        }
        for (char c : T.toCharArray()) {
            if (c == '#') {
                if (!tStack.isEmpty()) {
                    tStack.pop();
                }
            } else {
                tStack.push(c);
            }
        }
        
        while (!sStack.isEmpty() && !tStack.isEmpty()) {
            if (sStack.pop() != tStack.pop()) {
                return false;
            }
        }
        return sStack.isEmpty() && tStack.isEmpty();
    }
}
上一篇 下一篇

猜你喜欢

热点阅读