20. 有效的括号

知乎ID: 码蹄疾 
码蹄疾,毕业于哈尔滨工业大学。 
小米广告第三代广告引擎的设计者、开发者; 
负责小米应用商店、日历、开屏广告业务线研发;
主导小米广告引擎多个模块重构; 
关注推荐、搜索、广告领域相关知识;

题目

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

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: "()"
输出: true

示例 2:
输入: "()[]{}"
输出: true

示例 3:
输入: "(]"
输出: false

示例 4:
输入: "([)]"
输出: false

示例 5:
输入: "{[]}"
输出: true

分析

stack 的经典题目,大学的数据结构课第一个例子就是这个。

Code

class Solution {
    public boolean isValid(String s) {
        Map<Character, Character> charMap = new HashMap<>();
        charMap.put(‘}‘, ‘{‘);
        charMap.put(‘]‘, ‘[‘);
        charMap.put(‘)‘, ‘(‘);
        char [] stack = new char[s.length()];
        int top = -1;
        for (int i = 0; i < s.length(); i++) {
            if (charMap.containsValue(s.charAt(i))) {
                stack[++top] = s.charAt(i);
            }
            if (charMap.containsKey(s.charAt(i))) {
                if (top == -1 || stack[top--] != charMap.get(s.charAt(i))) {
                    return false;
                }
            }
        }
        return top == -1;
    }
}

微信扫码关注更多题解!

原文地址:https://www.cnblogs.com/acceml/p/9282032.html

时间: 2024-11-13 10:35:45

20. 有效的括号的相关文章

[leetcode] 20. 有效的括号

20. 有效的括号 括号匹配,用栈即可.高中时第一次学栈后做的第一个题.. class Solution { public boolean isValid(String s) { Stack<Character> characterStack = new Stack<>(); for (int i = 0; i < s.length(); i++) { switch (s.charAt(i)) { case '(': case '[': case '{': character

20. Valid Parentheses括号匹配

20 Valid Parentheses Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]"

20. Valid Parentheses(括号匹配,用桟)

Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]"

20. Valid Parentheses - 括号匹配验证

Description: Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. Example: The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]&quo

LeetCode 20 Valid Parentheses 括号匹配问题

题目: Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]&

Leetcode 20.有效的括号 js

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

Leetcode题目20.有效的括号(简单)

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

20. 有效的括号(栈的使用)

题目描述:括号(小括号.中括号.大括号)的匹配 传送门:https://leetcode-cn.com/problems/valid-parentheses/ 解法:<数据结构>中作为例子引出栈的概念.用一个栈维护,从左到右扫描目标字符串,如果括号匹配,即满足三种情况: ①.s[i] == ')' && Stack.top() == '(' ②.s[i] == ']' && Stack.top() == '[' ③.s[i] == '}' &&

leetcode 20 Valid Parentheses 括号匹配

Given a string containing just the characters '(', ')', '{', '}', '[' and']', determine if the input string is valid. The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]"