使用类:
-
Stack
类代表最先进先出(LIFO)堆栈的对象
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
例如:
输入:s = "([)]" 输出:falseimport java.util.Scanner; import java.util.Stack; public class demo02 { public static boolean isValid(String s) { Stack<Character> stk = new Stack(); for(Character c : s.toCharArray()){ // 如果c是 ({[ 则入栈¬ if(c == '(' || c == '{' || c == '[' ) stk.push(c); // 如果c是 )}] 并且栈不为空 则 判断栈顶是否为与之对应的左括号 是则出栈,不是则返回fasle else if(c == ')' && !stk.empty() && stk.peek() == '(') { stk.pop(); } else if(c == '}' && !stk.empty() && stk.peek() == '{') { stk.pop(); } else if(c == ']' && !stk.empty() && stk.peek() == '[') { stk.pop(); }else { return false; } } // 如果最后栈不为空,那么就是有多余的左括号了 return stk.empty();} public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); boolean a = isValid(s); System.out.println(a); } }