zoukankan      html  css  js  c++  java
  • 判断字符串括号是否闭合(){}[]

    今天去面试做了一道狠可爱的题目,判断一个字符串的括号自否闭合(包括大小中括号)

    当时没马上做出来,只是说了大概的思路

    一开始的思路就是判断每种括号的开闭数量是否相等,其实虽然也能实现但是搞得太复杂了;

    回来后查了下发现很多都是利用堆栈实现的,

    下面是不用栈实现的方式:

    只需设一个常量,

    开+1,

    闭-1,

    闭合的话为0,

    没闭合的话不为0,

    出现<0即为顺序不对

     1     public static void main(String[] args){
     2         String str = "{123}[23](11{231)}";
     3         countBrackets(str);
     4     }
     5     /**
     6      * 判断括号是否关闭
     7      * 遍历字符串
     8      * 左括号时+1,右括号时-1
     9      * 当出现小于0的情况时,括号顺序不对
    10      * 最后不等于0的话说明没关闭
    11      * @param str
    12      */
    13     public static void  countBrackets(String str){
    14         int da=0,zh=0,xi=0;
    15         for(int i=0;i<str.length();i++){
    16             char s = str.charAt(i);
    17             if(s=='{'){
    18                 da+=1;
    19             }
    20             if(s=='['){
    21                 zh+=1;
    22             }
    23             if(s=='('){
    24                 xi+=1;
    25             }
    26             if(s=='}'){
    27                 da-=1;
    28             }
    29             if(s==']'){
    30                 zh-=1;
    31             }
    32             if(s==')'){
    33                 xi-=1;
    34             }
    35             if(da<0||zh<0||xi<0){
    36                 break;
    37             }
    38         }
    39         if(da!=0||zh!=0||xi!=0){
    40             System.out.println("error");
    41         }else{
    42             System.out.println("ok");
    43         }
    44     }
  • 相关阅读:
    pandas.DataFrame.to_excel
    python list [:1]
    python 读取文件
    pandas 中的常用数学计算
    神经网络相关术语
    keras初探
    机器学习相关
    Numpy random arange zeros
    numpy 常用函数
    【Redis学习之四】Redis数据类型 string
  • 原文地址:https://www.cnblogs.com/dadaxin/p/6838854.html
Copyright © 2011-2022 走看看