有效的括号序列

来源:互联网 发布:域名转入阿里云 编辑:程序博客网 时间:2024/06/06 13:07
给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', 判定是否是有效的括号序列。
样例

括号必须依照 "()" 顺序表示, "()[]{}" 是有效的括号,但 "([)]"则是无效的括号。

import java.util.Scanner;import java.util.Stack;/** * 给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', 判定是否是有效的括号序列。样例括号必须依照 "()" 顺序表示, "()[]{}" 是有效的括号,但 "([)]"则是无效的括号。 *  * @author Dell * */public class Test423 {   public static boolean isValidParentheses(String s) { Stack<Character> s1=new Stack<>(); for(int i=0;i<s.length();i++) {       if("({[".contains(String.valueOf(s.charAt(i))))       {       s1.push(s.charAt(i));       }       else       {       if(s1.isEmpty()!=true&&is_valid(s1.peek(),s.charAt(i)))       {       s1.pop();       }       else       {       return false;       }              } }return s1.isEmpty();  }private static boolean is_valid(char c1, char c2) {return (c1=='('&& c2==')')||(c1=='{'&& c2=='}')||(c1=='['&& c2==']');}public static void main(String[] args) {  Scanner sc=new Scanner(System.in);  String s=sc.nextLine();  System.out.println(isValidParentheses(s));}}


原创粉丝点击