用户输入括号是否匹配

简介: 用户输入括号是否匹配

 

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 + "中括号不匹配");
    }

image.gif

目录
相关文章
|
7月前
|
JavaScript 前端开发 Java
|
人工智能 Java 机器人
掌握正则验证字串符,轻松搞定字符串匹配
正则验证字串符是一种强大的工具,可以帮助程序员在处理字符串时轻松进行复杂匹配。本文将介绍正则表达式的概念、语法和在编程中的应用,并通过实例演示如何使用正则表达式进行字符串匹配、替换和提取等操作。
|
2月前
|
移动开发 Java Python
字符串里有换行符如何进行匹配?
【10月更文挑战第3天】字符串里有换行符如何进行匹配?
49 1
|
6月前
|
Java
正则表达式匹配数字的几种方法比较
正则表达式匹配数字的几种方法比较
|
7月前
|
C++
HRBUST - 1170(判断括号是否匹配)
HRBUST - 1170(判断括号是否匹配)
|
7月前
|
固态存储 Python
正则表达匹配任意单个字符
正则表达匹配任意单个字符
246 4
|
机器学习/深度学习 Shell C++
正则表达式普通字符、非打印字符、特殊字符、限定符的应用、定位符、元字符(规则,匹配,和实际使用)与运算符优先级
正则表达式普通字符、非打印字符、特殊字符、限定符的应用、定位符、元字符(规则,匹配,和实际使用)与运算符优先级
311 0
|
算法 前端开发 JavaScript
【前端算法】判断一个字符串的括号是否成对匹配
使用typescript完成判断一个字符串的括号是否成对匹配的过程
135 0
|
Shell Linux Perl
Shell的正则表达式入门、常规匹配、特殊字符:^、$、.、*、字符区间(中括号):[ ]、特殊字符:\、匹配手机号
Shell的正则表达式入门、常规匹配、特殊字符:^、$、.、*、字符区间(中括号):[ ]、特殊字符:\、匹配手机号
Shell的正则表达式入门、常规匹配、特殊字符:^、$、.、*、字符区间(中括号):[ ]、特殊字符:\、匹配手机号