括号匹配二
题目描述:
假设表达式中包含三种括号: (), [], {}
. 其嵌套顺序随意,即 ()
或 {[{}]}
均为正确格式, [(])
或 (()]
均为不正确格式.
现给出一个只包含这三种括号的括号序列, 试判断该括号序列是否合法.
输入:
只包含一行, 为只包含 (), [], {}
的括号序列. (序列长度不超过 100 个字符)
输出:
若括号序列合法, 输出 YES
, 反之输出 NO
.
输入样例:
输出样例:
Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
import java.util.LinkedList; import java.util.Scanner;
public class Main { public static void main(String[] args) { var linkedList = new LinkedList<Character>(); var input = new Scanner(System.in); var s = input.nextLine();
for (int i = 0; i < s.length(); i++) { if (s.charAt(i) == '(') { linkedList.addLast(')'); } else if (s.charAt(i) == '[') { linkedList.addLast(']'); } else if (s.charAt(i) == '{') { linkedList.addLast('}'); } else if (linkedList.isEmpty() || s.charAt(i) != linkedList.removeLast()) { System.out.println("NO"); return; } }
if (linkedList.isEmpty()) System.out.println("YES"); else System.out.println("NO"); } }
|
2023-05-22
IP属地: 北京