解题思路:
1.遍历字符串,借助辅助栈,如果栈空,则直接入栈
2.如果栈非空,则查看栈顶字符和当前字符是否相等,若不等则将当前遍历到的字符入栈,如果相等,则将栈顶元素弹出
3.字符串遍历结束后,查看当前栈的情况,将栈中元素依次弹出
代码实现:
class Solution { public String removeDuplicates(String S) { int len=S.length(); Stack<String> stack=new Stack<>(); for(int i=0;i<len; i){ if(stack.empty()){//栈空 stack.push(S.charAt(i) ""); continue; } //栈非空 //取栈顶的元素与当前元素比较,如果相等,则栈顶元素弹出 //如果不等,则当前元素入栈 else{ String temp=stack.peek(); if(temp.equals(S.charAt(i) "")){ stack.pop(); } else{ stack.push(S.charAt(i) ""); } } } String res=""; while(!stack.empty()){ res=stack.pop() res; } return res;
联系客服