题目
/**
* 1、已知一个字符串都是由左括号(和右括号)组成,判断该字符串是否是有效的括号组合。
* 例子:
* 有效的括号组合:()(),(()),(()())
* 无效的括号组合:(,()),((),()(()
*/
解题思路
引入status常量来对字符数组做监测
Coding:
public static boolean isValid(String str) {
//判断字符串是否为空
if (str == null || str == "") {
return false;
}
//字符串拆分为字符数组
Char[] chars = str.toCharArray();
//根据status的状态来判断
int status = 0;
for (int i = 0; i < chars.length; i++) {
//判断数组是否只有() 若有其他字符 则为无效组合
if (chars[i] != ')' || chars[i] != '(') {
return false;
}
//当数组遍历是值为)并且status-1后小于0的话则说明不满足在任一区间内')'<='('
if (chars[i] == ')' && --status < 0) {
return false;
}
//如果是'(' status+1
if (chars[i] == '(') {
status++;
}
return status == 0;
}
}