题解 | #点击消除#

点击消除

http://www.nowcoder.com/practice/8d3643ec29654cf8908b5cf3a0479fd5

和匹配括号类似,先将字符入栈,若字符与栈中字符匹配,则出栈,否则入栈 最后打印栈中剩余元素

import java.util.*;
public class Main{
    public static void main(String args[]){
        Scanner sc=new Scanner(System.in);
        Stack<Character> stack=new Stack<>();
        while(sc.hasNext()){
            String s=sc.nextLine();
            char[] arr=s.toCharArray();
            for(int i=0;i<arr.length;i++){
                 if(stack.isEmpty()){
                      stack.push(arr[i]);
                 }
               
                else if(arr[i]==stack.peek() && !stack.isEmpty()){
                    stack.pop();
                }else{
                    stack.push(arr[i]);
                }
            }
            //利用StringBuilder 输出栈中元素,若栈为空,打印0,否则,存入StringBuilder并反转输出
            StringBuilder sb=new StringBuilder();
            if(!stack.isEmpty()){
                while(!stack.isEmpty()){
                    sb.append(stack.pop());
                }
                System.out.print(sb.reverse());
            }else{
                System.out.print(0);
            }
        }
    }
}
全部评论

相关推荐

qq乃乃好喝到咩噗茶:院校后面加上211标签,放大加粗,招呼语也写上211
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务