百里登风

导航

有效的括号

给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

1、左括号必须用相同类型的右括号闭合。
2、左括号必须以正确的顺序闭合。

 

示例 1:

输入:s = "()"
输出:true


示例 2:

输入:s = "()[]{}"
输出:true


示例 3:

输入:s = "(]"
输出:false


示例 4:

输入:s = "([)]"
输出:false


示例 5:

输入:s = "{[]}"
输出:true

 

提示:

  • 1 <= s.length <= 104
  • s 仅由括号 '()[]{}' 组成

     

解题思路

1.循环遍历字符串根据题目的要求将()、{}、[]替换为空
2.循环的条件为s长度的一半
3.返回s的长度是否等于0

 

参考代码:

package com.gong;

public class KuoHao {
    public static boolean solution(String s){
        int length=s.length()/2;
        for(int i=0;i<length;i++){
            s=s.replace("()","").replace("[]","").replace("{}","");
        }
        return s.length()==0;
    }
    public static void main(String[] args){
            String s1="{[()]}";
            String s2="{}[]()";
            String s3="{{{}}}}}{}[][[[[[))))";
            boolean result1=solution(s1);
            boolean result2=solution(s2);
            boolean result3=solution(s3);
            System.out.println("result1="+result1);
            System.out.println("result2="+result2);
            System.out.println("result3="+result3);
    }
}

 

posted on 2021-07-04 00:08  百里登峰  阅读(107)  评论(0编辑  收藏  举报