• leetcode有效的括号java实现


    给定一个只包括 '('')''{''}''['']' 的字符串,判断字符串是否有效。
    
    有效字符串需满足:
    
    左括号必须用相同类型的右括号闭合。
    左括号必须以正确的顺序闭合。
    注意空字符串可被认为是有效字符串。
    
    示例 1:
    
    输入: "()"
    输出: true
    示例 2:
    
    输入: "()[]{}"
    输出: true
    示例 3:
    
    输入: "(]"
    输出: false
    示例 4:
    
    输入: "([)]"
    输出: false
    示例 5:
    
    输入: "{[]}"
    输出: true

    数据 结构选择:

    1)选择map保存括号之间的对应关系:使用到put,get,containsKey

    2)选择stack来匹配对应关系:使用到push,pop,peek,empty方法

    class Solution {
        public boolean isValid(String s) {
            if(s.length()%2!=0) return false;
            if(s.equals("")) return true;
            Map<Character,Character> map = new HashMap<Character,Character>();
            map.put('(',')');
            map.put('{','}');
            map.put('[',']');
            Stack<Character> stack = new Stack<Character>();
            for(int i=0;i<s.length();i++)
            {
                char c=s.charAt(i);
                if(map.containsKey(c))
                {    
                    stack.push(c);
                }
                else
                {
                    if(!stack.empty()&&map.get(stack.peek())==c)
                        stack.pop();
                    else
                        return false;                
                }
            }
            return stack.empty();
        }
    }
  • 相关阅读:
    测试用例
    SQL/My sql
    测试报告
    postman
    Linux环境搭建及命令
    jQuery EasyUI API 中文文档 树表格(TreeGrid)
    MYSQL学习心得(十) 自定义存储过程和函数
    webBrowser
    ASP.NET MVC5+EF6+EasyUI 后台管理系统(1)前言与目录
    vim括号操作(转)
  • 原文地址:https://www.cnblogs.com/raychou1995/p/10455814.html
Copyright © 2020-2023  润新知