【问题标题】:How many times can an array be flatten? [duplicate]数组可以展平多少次? [复制]
【发布时间】:2018-03-20 20:54:51
【问题描述】:

例如:如果我有一个二维数组

arr = [[1,2], [4,5], [7,5], 8]

输出应该是 1,因为它可以被展平一次。 如果我有一个一维数组

arr = [1,3,4]

输出应该是 0,因为它不能被展平。

我应该使用什么功能?

【问题讨论】:

  • 你自己写的...如果列表有不同的嵌套级别怎么办,例如[1,[2,[3,4],5],6].
  • 输入数组的最大深度是多少?
  • @WillemVanOnsem 如果是这种情况,请遵循最高嵌套级别
  • @RomanPerekhrest 可能是 3 或 4
  • @JimmyLiao:你能展示一下你自己的尝试吗?

标签: arrays


【解决方案1】:

使用递归:

def depth(arr):
    if isinstance(arr, list):
        return 1 + max(depth(elem) for elem in arr)
    else:
        return 0

【讨论】:

  • 简单列表的深度应该是0,另外请不要给别人做作业。
  • 引用你的source@PacoH 可能是个好主意
  • 我实际上是自己写的,但我知道你是如何得出这个结论的。
猜你喜欢
  • 2018-03-31
  • 2019-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 2015-05-08
  • 2011-11-03
  • 2014-03-28
相关资源
最近更新 更多