1. 程式人生 > >844. 比較含退格的字串 java

844. 比較含退格的字串 java

給定 S 和 T 兩個字串,當它們分別被輸入到空白的文字編輯器後,判斷二者是否相等,並返回結果。 # 代表退格字元。

import java.util.Stack;

public class TwoQueueImplStack {
        public static void main(String[] args)
        {
            String S="ab#c";
            String T="ac";

            System.out.println(backspaceCompare(S, T));

        }
      static  public boolean backspaceCompare(String S, String T) {
         Stack<Character> stackA = getStack(S.toCharArray());//toCharArray() 方法將字串轉換為字元陣列。
         Stack<Character> stackB = getStack(T.toCharArray());

         if(stackA.size() != stackB.size())
             return false;

         while(!stackA.isEmpty() && !stackB.isEmpty())
             if(stackA.pop() != stackB.pop())//一次pop一個出來
                 return false;


         return stackA.isEmpty() && stackB.isEmpty();//最後兩個都為空的話,就為real;
     }

      static private Stack<Character> getStack(char[] S)
     {
         Stack<Character> stack = new Stack<>();

         for(int i = 0 ; i < S.length ;i++)
         {
             Character letter = S[i];

             if(letter != '#')//如果letter != '#',則壓棧
                 stack.push(letter);
             else if(!stack.isEmpty())
                 stack.pop();//pop棧頂元素
         }

         return stack;

     }

}