前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >用户输入括号是否匹配

用户输入括号是否匹配

作者头像
楠羽
发布2022-11-18 10:37:25
发布2022-11-18 10:37:25
99900
代码可运行
举报
文章被收录于专栏:后端开发笔记后端开发笔记
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
复制
public class brackets {
    /*算法*/
    public static boolean isMatch(String str) {        
        int i = 0;
        char e, x;
        SqStackClass<Character> st = new SqStackClass<Character>();    //建立一个顺序栈

        while (i < str.length()) {
            e = str.charAt(i);
            if (e == '(' || e == '[' || e == '{') {
                st.push(e);                             //将左括号进栈
            } else {
                if (e == ')') {
                    if (st.empty()) {
                        return false;        //栈空返回false
                    }
                    if (st.peek() != '(') {
                        return false;    //栈顶不是匹配的'('返回false
                    }
                    st.pop();
                }
                if (e == ']') {
                    if (st.empty()) {
                        return false;               //栈空返回false
                    }
                    if (st.peek() != '[') {
                        return false;//栈顶不是匹配的'['返回false
                    }
                    st.pop();
                }
                if (e == '}') {
                    if (st.empty()) {
                        return false;//栈空返回false
                    }
                    if (st.peek() != '{') {
                        return false;//栈顶不是匹配的'{'返回false
                    }
                    st.pop();
                }
            }
            i++;                                        //继续遍历str
        }
        if (st.empty()) {
            return true;//栈空返回true
        }
        else {
            return false;//栈不空返回false
        }
    }

    public static void main(String[] args) {
        System.out.println("-------测试1----------");
        String str = "([)]";
        if (isMatch(str))
            System.out.println(str + "中括号是匹配的");
        else
            System.out.println(str + "中括号不匹配");

        System.out.println("-----------测试2------------");
        str = "([])";
        if (isMatch(str))
            System.out.println(str + "中括号是匹配的");
        else
            System.out.println(str + "中括号不匹配");

    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档