题解 | #有效括号序列#

有效括号序列

https://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2

代码主要逻辑如下:

for循环去遍历这个字符串

需要区分是是前括号还是后括号,前括号需要用栈存起来,栈的特点是先进后出、所以可以先拿到最后一个前括号。

识别到后括号,需要从栈中拿出一个 元素和 这个括号进行匹配,查看是否是同一个括号类型,如果是则继续,如果不是返回fasle

执行完整个训练后,判断栈是否有空余,如果有空余则证明前括号和后括号的数目不对,如果没有空余,并且前面的匹配没有报错,则证明是全部匹配成功,返回true

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return bool布尔型
     */
    public boolean isValid (String s) {
        // write code here
        Stack<Character> stack = new Stack<Character>();
        for(int i =0;i<s.length();i++)
        {
            if(s.charAt(i)=='('|| s.charAt(i)=='[' || s.charAt(i)=='{')
            {
                stack.push(s.charAt(i));
            }
            else{
                if(stack.isEmpty()){
                    return false;
                }
                Character character =stack.pop();
                if(s.charAt(i) == '}' && character == '{')
                {
                    continue;
                }
                else if(s.charAt(i) == ']' && character == '[')
                {
                    continue;
                }
                else if(s.charAt(i) == ')' && character == '(')
                {
                    continue;
                }
                else{
                    return false;
                }
                
            }
        }
        if(!stack.isEmpty())
        {
            return false;
        }
        return true;
    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
程序员牛肉:这一眼假啊,基本上都是骗人的,不然就涉及到职位贪腐了,就像之前华为的OD事件,看你运气好不好了
点赞 评论 收藏
分享
鼠鼠没有找到暑期实习,简历太空了,感觉直接去秋招会完蛋,这个时间点找个日常实习混个简历,边实习边准备秋招有没有搞头啊
梦想是成为七海千秋:可以的完全可以的,找不到暑期就找日常,秋招之前还是有很多时间可以实习的,哪怕只实习了一个月都可以写在简历上
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务