• 有效的括号


    有效的括号

    给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。

    有效字符串需满足:

    左括号必须用相同类型的右括号闭合。
    左括号必须以正确的顺序闭合。

    示例 1:

    输入:s = "()"
    输出:true
    示例 2:

    输入:s = "()[]{}"
    输出:true
    示例 3:

    输入:s = "(]"
    输出:false
    示例 4:

    输入:s = "([)]"
    输出:false
    示例 5:

    输入:s = "{[]}"
    输出:true

    提示:

    • 1 <= s.length <= 104
    • s 仅由括号 '()[]{}' 组成

    答案

    func isValid(s string) bool {
    	if len(s) <= 1 || len(s) > 10 * 10 * 10 * 10 || len(s) % 2 != 0{
    		return false
    	}
    
    	// 配对的map
    	m := make(map[string]string)
    	m[")"] = "("
    	m["]"] = "["
    	m["}"] = "{"
    
    	// 定义一个栈
    	stack := []string{}
    
    	for i := 0 ; i < len(s); i ++ {
    		if len(stack) == 0 {
    			// 栈空了就入栈
    			stack = append(stack, string(s[i]))
    		} else {
    			// 取出栈顶的元素开始比较
    			if stack[len(stack)-1] == m[string(s[i])]{
    				// 相同,则出栈
    				stack = stack[:len(stack)-1]
    			} else {
    				// 不同,则入栈
    				stack = append(stack, string(s[i]))
    			}
    		}
    	}
    	// 判断栈中是否有元素
    	if len(stack) == 0 {
    		return true
    	}else{
    		return false
    	}
    }
    
  • 相关阅读:
    mysql5.7慢查询开启配置
    easyui的datagrid删除一条记录后更新出问题
    easyui跨iframe属性datagrid
    struts2笔记12-声明式异常
    struts2笔记11-OGNL
    struts2笔记10-值栈
    linux命令学习03-grep
    struts2笔记09-动态方法调用
    1、GIT简介
    玩转Python语言之4:奇技淫巧
  • 原文地址:https://www.cnblogs.com/huiyichanmian/p/14344917.html
Copyright © 2020-2023  润新知