说明
有点标题党,严格地说,括号匹配用栈做比较规范。
问题是下面这题有点水啊,简便点大家都开心~~
题目要求
分析
题目太水,所以说我们可以认为什么各种异常不会出现。
只需要——简单的用一个String收下表达式,转char[],然后遍历到“(”记录一下,到“)”再处理一下就OK~~
为了简单,栈就免了吧,嘿嘿……
当然,你不可不知的是ASCII码里’(‘是40,’)'是41,哈哈……
AC代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String expression = scanner.nextLine();
scanner.close();
char[] arr = expression.toCharArray();
int counter = 0;
for (char c : arr) {
if (c == 40) {
counter++;
} else if (c == 41) {
if (counter <= 0) {
System.out.println("NO");
System.exit(0);
} else {
counter--;
}
}
}
if (counter == 0) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
}