Will I leave?.|

Canyooo

园龄:3年6个月粉丝:1关注:1

【LeetCode】#20. 有效的括号

 

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

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。
输入:s = "()"
输出:true
输入:s = "()[]{}"
输出:true
输入:s = "(]"
输出:false
输入:s = "{[]}"
输出:true

解题思路:使用栈,遍历数组,若是判断为左括号则压入相应的右括号,若判断为右括号则弹出栈,若不相同则return false。
复制代码
class Solution {
    public boolean isValid(String s) {
        Stack<Character> stack = new Stack<Character>();
        for(char a:s.toCharArray()){
            if(a=='('){stack.push(')');}
            else if(a=='{'){stack.push('}');}
            else if(a=='['){stack.push(']');}
            else{
                if(stack.empty()||a!=stack.pop()){
                    return false;
                }
            }
        }
        return stack.empty();
    }
}
复制代码

知识点:

1、Character为字符串类。
2、Stack的方法:push()压入,pop()弹出。

本文作者:Canyooo

本文链接:https://www.cnblogs.com/canyooo/p/15255591.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Canyooo  阅读(28)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 黑洞里 方大同
黑洞里 - 方大同
00:00 / 00:00
An audio error has occurred.

Not available