package practise;
import java.util.Stack;
//给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
//有效字符串需满足:
//1、左括号必须用相同类型的右括号闭合。
//2、左括号必须以正确的顺序闭合。
//输入:s = "()[]{}"
//输出:true
public class IsValid {
public static void main(String[] args) {
String str = "]";
boolean flag = isValid(str);
System.out.println("该字符串" + str + ":" + flag);
}
public static boolean isValid(String str) {
Stack<Character> stack = new Stack<>();
char[] chars = str.toCharArray();
for (char c : chars) {
if (c == '(' || c == '{' || c == '[') {
stack.push(c);
} else {
if (!stack.isEmpty()) {
if (c == ')' && stack.pop() != '(') {
return false;
}
if (c == '}' && stack.pop() != '{') {
return false;
}
if (c == ']' && stack.pop() != '[') {
return false;
}
} else {
return false;
}
}
}
return stack.isEmpty();
}
}
Java练习题-有效的括号
最新推荐文章于 2024-11-03 11:01:20 发布