java版括号匹配问题

来源:互联网 发布:手机淘宝怎么指纹支付 编辑:程序博客网 时间:2024/05/22 06:54

我是一名大四的学生,我是南阳理工学院的一名学生,虽然说我们学校很不出名,但我知道我们学校的软件学院的管理是很好的,不过也有一些不足,主要是学校不太注重像数据结构和算法这些基础,我的大学没有学过算法,但我出来面试时才感觉到这些如此的重要,我大一时花了一学期学习c语言,也做过acm练习,但是由于算法不好以致好多算法题都做不粗来,今天我们来研究一下算法中一道经典类型题,括号匹配问题 ,由于java是面向对象的,所以好多东西都做了封装,所以我用类模拟了一下栈,话不多说上代码

public class kuohaopipei{
    public static void main(String[] args) {
        boolean flag = false;
        char a[] = {'(',')','(','[',')',']','(','[',']',')'};
        System.out.println(a);
        stack s = new stack();
        for(int i=0;i<a.length;i++){
            if(a[i]=='(' || a[i]=='['){
                s.push(a[i]);
            }
            if(a[i]==')' || a[i] == ']'){
                if(a[i]==')'){
                    if(s.pop() != '('){
                        flag = true;
                    }
                }
                if(a[i] == ']'){
                    if(s.pop() != '['){
                        flag = true;                    
                    }
                }
            }
        }
        if(flag){
            System.out.println("括号不匹配");
        }else{
            System.out.println("括号匹配");
        }
    }
}

class stack{
    private char[] c;
    private int top;
    public stack(){
        c = new char[10];
        top=0;
    }
    
    public void push(char a){
        c[top] = a;
        top++;
    }
    
    public char pop(){
        top--;
        char a = c[top];
        
        return a;
    }
}

解决括号配对问题,用栈绝对是一个好方法,各位同学慢慢看,以后我会继续分享各种算法问题,最后说一句,不要不注重数据结构和算法,这些东西虽然开发中不回家经常用到,但是大公司面试时绝对会用得到,亲身经历

原创粉丝点击