题目描述
写一段代码,判断一个包括'{','[','(',')',']','}'的表达式是否合法(注意看样例的合法规则。)
给定一个表达式A,请返回一个bool值,代表它是否合法。加入括号是否匹配的判断
测试样例:
"[a+b*(5-4)]*{x+b+b*(1+2)}"
返回:true
测试样例:
"[a+b*(5-4)]*{x+b+b*(({1+2)}}"
返回:false
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
while(scan.hasNextLine()){
String str = scan.nextLine();
int length = str.length();
Stack<Character> s = new Stack<Character>();
boolean flag = true;
for(int i = 0 ; i < length ; i++){
char ch = str.charAt(i);
switch(ch){
case '{':
s.push(ch);
break;
case '}':
if(s.peek() == '{'){
s.pop();
}else{
flag = false;
}
break;
case '[':
s.push(ch);
break;
case ']':
if(s.peek() == '['){
s.pop();
}else{
flag = false;
}
break;
case '(':
s.push(ch);
break;
case ')':
if(s.peek() == '('){
s.pop();
}else{
flag = false;
}
break;
default:
break;
}
}
System.out.println(s.isEmpty() && flag);
}
scan.close();
}
}
本文介绍了一个使用Java实现的括号匹配验证程序。该程序能够判断包含'{','[','(',')',']','}
2620

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



