UVa 673 括号平衡 jva实现

来源:互联网 发布:服务器端口一直不通 编辑:程序博客网 时间:2024/05/06 11:23

利用栈就可以了,遇到左边括号进栈,遇到右括号,判断是否与栈顶的左括号对应。如果对应,取出栈顶,如果不对应,直接判断不平衡。

最后,判断栈内是否还有元素,如果没有说明平衡,如果有,则不平衡

public class Test {public static void main(String[] args) {String[] str = {"(","(",")","{","}",")"};//括号序列String[] stack = new String[str.length];//栈for(int i=0,j=0;i<str.length;i++){if(str[i]=="(" || str[i]=="{" || str[i]=="["){//判断为左括号,进栈stack[j] = str[i];j++;}else if(str[i]==")" || str[i]=="}" || str[i]=="]"){//判断为右括号//判断左右括号是否对应if(str[i]==")" && stack[j-1]=="("){stack[j-1] = "";j--;}else if(str[i]=="}" && stack[j-1]=="{"){stack[j-1] = "";j--;}else if(str[i]=="]" && stack[j-1]=="["){stack[j-1] = "";j--;}else{//不对应,直接判断为不平衡System.out.println("不平衡");System.exit(-1);}}}if(stack[0] == null || stack[0]==""){//判断栈内是否还有元素System.out.println("平衡");}else{System.out.println("不平衡");}}}


0 0
原创粉丝点击