题目描述
(1+(2+3)*(3+(8+0))+1-2)这是一个简单的数学表达式,今天不是计算它的值,而是比较它的括号匹配是否正确。
前面这个式子可以简化为(()(()))这样的括号我们认为它是匹配正确的,
而((())这样的我们就说他是错误的。注意括号里面的表达式可能是错的,也可能有多个空格,对于这些我们是不用去管的,
我们只关心括号是否使用正确。
输入描述
给出一行表达式(长度不超过 100)。
输出描述
如果匹配正确输出括号的对数,否则输出-1。
用例
| 输入 | (1+(2+3)*(3+(8+0))+1-2) |
| 输出 | 4 |
Java
import java.util.LinkedList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
该博客主要讨论华为在线测评(OD)中的一道题,即检查数学表达式的括号匹配问题。博主解释了如何判断括号是否正确配对,并指出只需关注括号本身,忽略内部表达式和空格。题目要求输入一行长度不超过100的表达式,输出匹配正确的括号对数,否则输出-1。
订阅专栏 解锁全文
1126

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



