题目:
有效的括号
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
示例 1:
输入:s = “()”
输出:true
一、图解过程
采用栈(stack)的方式。
二、代码
package suanfa.有效的括号_11;
import java.util.Stack;
public class Eleven11 {
public static void main(String[] args) {
System.out.println(Eleven11.solution("()[]{}"));
System.out.println(Eleven11.solution("(]"));
System.out.println(Eleven11.solution("([)]"));
}
public static boolean solution(String s){
Stack<Character> stack = new Stack<>();
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
if (ch == '(' || ch == '[' || ch == '{') {
stack.push(ch);
}else {
if (stack.isEmpty()) {return false;}
char l = stack.pop();
if (ch == ')'){
if (l != '(') {return false;}
}else if(ch == '}'){
if (l != '{') {return false;}
}else if (ch == ']') {
if (l != '[') {return false;}
}
}
}
return stack.isEmpty();
}
}