首页 > 试题广场 >

获取n维数组的最大深度

[编程题]获取n维数组的最大深度
  • 热度指数:4070 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
输入参数为字符串型的n维数组,数组的每一项值为数组 或 int型数字。请实现一个函数,可以获取列表嵌套列表的最大深度为多少。

输入描述:
输入参数为字符串型的 n维数组,列表的每一项值为数组 或 int型数字。数组内的数组,每一项值,也可以是数组 或 int型数字。


输出描述:
int型数字,表示数组嵌套的深度。
示例1

输入

[[1], [2,3,4], [5,[2,3]], [7], [0,[1,2,3,4],3,5], [1,3], [3,2,4]]

输出

3

说明

n维数组的深度为3

s = input()
maxdp = 0
temp = 0
for i in range(len(s)):
    if s[i] == '[':
        temp += 1
        maxdp = max(maxdp,temp)
    elif s[i] == ']':
        temp -= 1
print(maxdp)

编辑于 2020-07-15 15:57:53 回复(0)

 
import sys
str = sys.stdin.readline()
sum = 0
list1=[]
list2=[]
for i in str:
    if i == "[":
        list1.append(i)
        result = len(list1)
        list2.append(result)
    elif i == "]":
        list1.pop()
print(max(list2))

发表于 2019-10-26 20:23:51 回复(0)
deep = 0
counter = 0
input_str = input()
for ch in input_str:
    if ch == "[":
        counter += 1
        if counter > deep:
            deep = counter
    elif ch == "]":
        counter -= 1
print(deep)
    # else: don't need to do anything

发表于 2019-09-06 19:43:40 回复(0)
依次扫描字符串,如果是 [ 则入栈,计数加一,如果是 ] 则出栈,计数减一,期间记录的计数的最大值即为最大深度。
array = input()
stack = []
temp = 0
maxval = 0
for i in array:
    if i == '[':
        stack.append(i)
        temp += 1
        maxval = max(maxval, temp)
    elif i == ']':
        stack.pop()
        temp -= 1
print(maxval)


发表于 2019-08-26 21:59:15 回复(0)
"""
括号配对
"""

if __name__ == "__main__":
    s = input()
    ans, tmp = 0, 0
    for c in s:
        if c == '[':
            tmp += 1
            ans = max(ans, tmp)
        elif c == ']':
            tmp -= 1
    print(ans)

发表于 2019-07-16 11:47:48 回复(0)