题目说明:
给定一个字符串A和它的长度n,请返回一个bool值代表它是否为一个合法的括号串。
一个合法的括号串定义为:
1.只包括括号字符;
2.左括号和右括号一一对应
测试样例1:
“(()())”,6
返回:true
测试样例2:
“()a()()”,7
返回:false
测试样例3:
“()(()()”,7
返回:false
Java代码:
public class One
{
public static void main(String args[]){
String str1="(()())";
int n1=str1.length();
String str2="()a()()";
int n2=str2.length();
String str3="()(()()";
int n3=str3.length();
System.out.println(isValid(str1,n1));
System.out.println(isValid(str2,n2));
System.out.println(isValid(str3,n3));
}
public static boolean isValid(String A, int n) {
int count = 0;
if(n%2==1) {
return false;
}
for(int i = 0; i<n;i++) {
//charAt(i):返回指定索引对应的字符信息
if(A.charAt(i)!='(' && A.charAt(i)!=')') {
return false;
}
if(A.charAt(i)=='('){
count++;
}
if(A.charAt(i)==')'){
count--;
}
}
return count==0;
}
}
运行结果: