判断字符串是否合法
比如 “[]{}”,"[({{[]}})]",为合法
“[)]”,"{}{()]}"为不合法
考虑用栈,判断是否为左边,为左边就入栈,右边就出栈.
public static void main(String[] args) {
String s = "{([])}";
System.out.println(getResul(s));
}
static boolean getResul(String s){
Stack<Character> stack = new Stack<>();
for (int i = 0; i <s.length() ; i++) {
switch (s.charAt(i)){
case '{':
stack.push(s.charAt(i));
break;
case '[':
stack.push(s.charAt(i));
break;
case '(':
stack.push(s.charAt(i));
break;
case '}':
//判断栈是否为空,获取栈顶元素,如果不存在就弹出
if (!stack.empty() && stack.peek()=='{' ){
stack.pop();
break;
}else{
return false;
}
case ']':
if (!stack.empty() && stack.peek()=='[' ){
stack.pop();
break;
}else{
return false;
}
case ')':
if (!stack.empty() && stack.peek()=='(' ){
stack.pop();
break;
}else{
return false;
}
}
}
if (stack.empty()){
return true;
}else{
return false;
}
}
该博客介绍了一种利用栈数据结构来判断字符串中括号是否匹配的方法。通过遍历字符串,遇到左括号入栈,遇到右括号则尝试与栈顶的左括号匹配,若匹配成功则出栈,否则返回错误。最后栈为空则表示字符串合法,否则非法。
1139

被折叠的 条评论
为什么被折叠?



