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.
给定一个只包含“()”, “{ }”, “[ ]”的字符串,判定是否该字符串是否有效
字符串有效的条件如下:
- 左字符串必须被相同类型的括号关闭
- 左字符串必须被以正确的顺序关闭
思路:利用列表,将字符串的字符逐个放进列表中,如果当前输入的字符串和列表末尾的字符串相同,那么就删除列表末尾的字符,否则就放入字符串中。
public boolean isValid(String s) {
if(s.length()<1) return true;
ArrayList<Character> arr = new ArrayList<Character>();
arr.add(s.charAt(0));
for (int i = 1; i < s.length(); i++) {
if (arr.size()>0){
if((s.charAt(i) == ']' && arr.get(arr.size() - 1) == '[')
|| (s.charAt(i) == '}' && arr.get(arr.size() - 1) == '{' || (s
.charAt(i) == ')' && arr.get(arr.size() - 1) == '('))) {
arr.remove(arr.size() - 1);
}
else {
arr.add(s.charAt(i));
}
} else {
arr.add(s.charAt(i));
}
}
if (arr.size() == 0) {
return true;
} else {
return false;
}
}