• [Java]利用栈判断括号是否完整配对


    利用栈实现判断字符串中的括号是否都是配对的。

    主要算法是依次读取字符串中的每一个字符,如果是左括号则将左括号压入栈中,如果是右括号则从栈中弹出最上面的字符,若两者不是同种括号或栈内已经没有字符就返回false,循环完成后返回true。

    package com.example;
    
    /**
     * Created by XiaFF on 2014/11/18.
     *
     */
    public class Parentheses {
        public static void main(String[] args){
            String s="[()]{}{[()[]()]()}";
            System.out.println(isComplete(s));
        }
    
        public static boolean isComplete(String s){
            Stack<String> left=new Stack<String>();
            while (!s.isEmpty()){
                //取字符串首字母
                String character=s.substring(0,1);
                //剩余的字符串
                s=s.substring(1);
                if(character.equals("{")||character.equals("[")||character.equals("(")){
                    //如果是左括号,则压入栈
                    left.push(character);
                }else if(character.equals(")")||character.equals("]")||character.equals("}")){
                    //首先检查栈是否为空
                    if(left.isEmpty())
                        return false;
                    //弹出最后的左括号
                    String leftChar=left.pop();
                    //检查左右括号是否匹配
                    if(character.equals(")")){
                        if(!leftChar.equals("("))
                            return false;
                    }else if(character.equals("]")){
                        if(!leftChar.equals("["))
                            return false;
                    }else if(character.equals("}")){
                        if(!leftChar.equals("{"))
                            return false;
                    }
                }
            }
            //此时栈中不应该再有左括号
            return left.isEmpty();
        }
    }



    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    BP神经网络算法学习
    《SAS编程与数据挖掘商业案例》学习笔记之十六
    leetcode:Best Time to Buy and Sell Stock II
    ASP.NET Web Pages:WebMail 帮助器
    ASP.NET Web Pages:Chart 帮助器
    ASP.NET Web Pages:WebGrid 帮助器
    ASP.NET Web Pages:帮助器
    ASP.NET Web Pages:文件
    ASP.NET Web Pages:对象
    ASP.NET Web Pages:表单
  • 原文地址:https://www.cnblogs.com/xiaff/p/4856510.html
Copyright © 2020-2023  润新知