给定一个只包括 '(',')','{','}','[',']' 的字符串 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); } }