标题
有效的括号
问题描述
给定一个只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字符串 s
,判断字符串是否有效。
题目要求
- 指定字符串为参数,结果为返回值,填写对应的方法体即可
1 <= s.length <= 104
s
仅由括号'()[]{}'
组成- 有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
输入格式1
s = "()"
输出格式1
true
输入格式2
s = "()[]{}"
输出格式2
true
输入格式3
s = "(]"
输出格式3
false
输入格式4
s = "([)]"
输出格式4
false
输入格式5
s = "{[]}"
输出格式5
true
考察内容*
字符串方法:
s.length(); 字符串长度
s.replace(“被替换的字符”,“替换的字符”);
循环语句
条件语句
解题思路*
1.判断字符串是否是空值或单数(是 返回false)
2.将字符串中的“[]""{}""()“使用循环成对去除,最后是空字符串说明输入正确。如果还有字符说明字符没有按正确顺序闭合。如”([}])”,"{(})"…
核心代码*
class Solution {
public boolean isValid(String s) {
//假如长度是1或者不为偶数
if(s.length()<2||s.length()%2!=0){
return false;
}
int count = 0;
int length = s.length();
//循环替换,最大次数为s.length()/2
while(count<length/2){
s = s.replace("{}","").replace("[]","").replace("()","");
count++;
}
//假如循环替换完,还有值,那么肯定就不是对称结构
if(s.length()>0){
return false;
}else{
return true;
}
}
}