题目:
Given a string containing just the characters '('
, ')'
, '{'
, '}'
, '['
and ']'
, determine if the input string is valid.
An input string is valid if:
- Open brackets must be closed by the same type of brackets.
- Open brackets must be closed in the correct order.
Note that an empty string is also considered valid.
Example 1:
Input: "()" Output: true
Example 2:
Input: "()[]{}" Output: true
Example 3:
Input: "(]" Output: false
Example 4:
Input: "([)]" Output: false
Example 5:
Input: "{[]}" Output: true
代码:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Solution {
public boolean isValid(String s) {
int count1=count_str_child(s,'(');
int count2=count_str_child(s,')');
int count3=count_str_child(s,'[');
int count4=count_str_child(s,']');
int count5=count_str_child(s,'{');
int count6=count_str_child(s,'}');
if(s.matches(("\\(\\)*"+"\\[\\]*"+"\\{\\}*"))||
s.matches(("\\(\\)*"+"\\{\\}*"+"\\[\\]*"))||
s.matches(("\\[\\]*"+"\\(\\)*"+"\\{\\}*"))||
s.matches(("\\[\\]*"+"\\{\\}*"+"\\(\\)*"))||
s.matches(("\\{\\}*"+"\\(\\)*"+"\\[\\]*"))||
s.matches(("\\{\\}*"+"\\[\\]*"+"\\(\\)*"))){
return true;
}else if(s.matches((".*"+"\\(\\]+"+".*"))||
s.matches((".*"+"\\(\\}+"+".*"))||
s.matches((".*"+"\\[\\)+"+".*"))||
s.matches((".*"+"\\[\\}+"+".*"))||
s.matches((".*"+"\\{\\)+"+".*"))||
s.matches((".*"+"\\{\\]+"+".*"))){
return false;
}else{
if (s.length()%2==1) {
return false;
}else {
if((count1!=count2)||(count3!=count4)||(count5!=count6)){
return false;
}else{
return true;
}
}
}
}
public static int count_str_child(String str,char str_child){
int count = 0;
for (int i=0;i<str.length();i++)
{
if (str.charAt(i)==str_child) {
count++;
}
}
return count;
}
}