题目描述
对于一行代码(字符串),里面可能出现大括号“{}”、中括号“[]”和小括号“()”,请编程判断改行代码的括号嵌套是否正确。“()”,“({})”,“printf(‘Hello Netease’)”等都是括号使用的正确方法,“(}”,”print(Hello Netease]”则是错误的范例。
输入描述
输入包含一行,为一行包含括号的字符串(字符串长度不超过1000)
输出描述
输出为Yes或者No
import .*;
//检验{【】}【】括号匹配
public class Main {
public static void main(String[] args) {
int flag = 0;
String s = "{([])}"; //输入的字符串
int num = ();
char[] arr = ();
(arr); //打印输出
// Stack<> stack;
Stack<Character> stack = new Stack<Character>();
for (int i = 0; i < num; i++) {
if ('{' == arr[i] || '(' == arr[i] || '[' == arr[i]) {
(arr[i]);
} else {
if (()) {
flag = 1;
} else {
if (('}' == arr[i] && () == '{') || ')' == arr[i] && () == '('
|| ']' == arr[i] && () == '[') {
();
}
}
}
}
if (flag == 1 && ())
("Yes");
else {
("NO");
}
}
}
Output:
{([])}
Yes
Stack - 栈 特点是后进先出 ,其中
- push() 将一个对象写入栈顶
- peek() 方法返回栈顶对象且不将其出栈 (没用到)
- pop() 返回栈顶对象并将其出栈