给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
class Solution {
public boolean isValid(String s) {
char[] arr = s.toCharArray();
int len = arr.length;
int[] stacks = new int[len];
int top=-1;
for (char c : arr) {
if (c == '(' || c == '[' || c == '{') {
stacks[++top] = c;
} else {
if (top == -1 || (c == ')' && stacks[top] != '(') || (c == '}' && stacks[top] != '{') || (c == ']' && stacks[top] != '[')) {
return false;
}
top--;
}
}
return top==-1;
}
}
没有用stack是因为还没学到那里,不过用自己的stacks实现,道理其实差不多;