【编程题目 |200分】最大括号深度【2021, 2022 Q1,Q2考试题】
时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++262144K,其他语言524288K
64bit IO Format:%lld
本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,
编码后请点击”保存并调试“按钮进行代码提交。
■ 题目描述
现有一字符串仅由 ‘(‘,’)’,'{‘,’}’,'[‘,’]’六种括号组成。
若字符串满足以下条件之一,则为无效字符串:
①任一类型的左右括号数量不相等;
②存在未按正确顺序(先左后右)闭合的括号。
输出括号的最大嵌套深度,若字符串无效则输出0。
0≤字符串长度≤100000
输入描述:
一个只包括 ‘(‘,’)’,'{‘,’}’,'[‘,’]’的字符串
输出描述:
一个整数,最大的括号深度
示例1 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
[]
输出
1
说明
有效字符串,最大嵌套深度为1
示例2 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
([]{()})
输出
3
说明
有效字符串,最大嵌套深度为3
示例3 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
(]
输出
0
说明
无效字符串,有两种类型的左右括号数量不相等
示例4 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
([)]
输出
0
说明
无效字符串,存在未按正确顺序闭合的括号
示例5 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
)(
输出
0
说明
无效字符串,存在未按正确顺序闭合的括号。
C++
#include <bits/stdc++.h> using namespace std; bool ValidMaxDepth(string s, int &depth) { int n = (int) s.size(); if (n % 2 == 1) { return false; }
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看JAVA解法一
import java.util.Scanner; import java.util.Stack; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String inputStr = scanner.nextLine(); char[] chars = inputStr.toCharArray(); int len = chars.length; if (len % 2 != 0) { System.out.println("0"); return; }
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看JAVA解法二
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String input = sc.nextLine(); char[] chars = input.toCharArray(); MyStack<Character> stack = new MyStack<>(input.length());
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看Python
while 1: try: nums = input() max_ = 0
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看