【Java】括号匹配

心已赠人 2022-12-09 04:53 262阅读 0赞

{}
括号匹配模式

解题思路

  1. import java.util.Scanner;
  2. import java.util.Stack;
  3. /** * @Author bennyrhys * @Date 2020-09-20 15:24 */
  4. public class T71 {
  5. public static void main(String[] args) {
  6. Scanner sc = new Scanner(System.in);
  7. String s = sc.nextLine();
  8. System.out.println(isS(s));
  9. }
  10. private static boolean isS(String s) {
  11. Stack<Character> stack = new Stack<>();
  12. for (int i = 0; i < s.length(); i++) {
  13. char c = s.charAt(i);
  14. if (c == '(')
  15. stack.push(')');
  16. if (c == '[')
  17. stack.push(']');
  18. if (c == '{')
  19. stack.push('}');
  20. if (c == ')' || c == ']' || c== '}') {
  21. if (stack.size() == 0)
  22. return false;
  23. if (stack.pop() != c)
  24. return false;
  25. }
  26. }
  27. if (stack.size() != 0)
  28. return false;
  29. return true;
  30. }
  31. }

发表评论

表情:
评论列表 (有 0 条评论,262人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java实现括号匹配

    题目 给定一个只包括 ‘(’,‘)’,‘\{’,‘\}’,‘\[’,‘\]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型

    相关 括号匹配

    栈的应用,括号匹配。 经典做法是,遇左括号压入,遇右括号判断,和栈顶配对就继续,不配对或者栈空就错了。最后判断是否为空。 代码有些麻烦。 我是遇左括号压对应的右括号,最后

    相关 括号匹配

    题目描述 假设一个算术表达式中可以包含三种括号:圆括号“(”和“)”,方括号“\[”和“\]”和花括号“\{”和“\}”,且这三种括号可按任意的次序嵌套使用(如:…\

    相关 括号匹配

    PTA 02:括号匹配 一、题目 给定一串字符,不超过100个字符,可能包括括号、数字、字母、标点符号、空格,编程检查这一串字符中的( ) ,\[ \],\{ \}

    相关 括号匹配

    括号配对问题 时间限制: 3000 ms  |  内存限制: 65535 KB 难度: 3 描述 现在,有一行括号序列,请你检查这行括号是否配对。 输入 第一行