844. 比較含退格的字串 java
阿新 • • 發佈:2018-12-10
給定 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; } }