是否有一種簡單的方法來確定t
(代表重組二叉樹)的嵌套級別(不依賴於Python的遞歸限制)?簡單的方法來確定嵌套元組的嵌套級別,在Python中
t = (4, (3, 5, (2, 4, 6, (1, 3, 5, 7))))
注意,如果沒有的t
深度的先驗知識,例程可能面臨遞歸限制,這是由sys.setrecursionlimit(n)
設置並由sys.getrecursionlimit()
觀看。不過,前手設置遞歸限制非常高,可能是不夠的,由此產生的誤差
`RecursionError: maximum recursion depth exceeded while calling a Python object`.
下面的命令生成一個較大(深)t
:
t = tuple(tuple(range(k)) for k in range(1,200))`
我想這些可能工作(有沒有制定出詳細信息):
- 一個可以轉換
t
到字符串並計算開括號 數
- 如果平坦元組的大小爲$ N $,那麼深度的正二次方根的大小爲$ n(n + 1)/ 2 = N $,即$ n =( - 1+ \ sqrt(1 + 8N) )/ 2 $
- 反覆剝離(並計數)外部容器,直到最深嵌套
- 其他?
P.S.任何想法爲什麼在線TeX不在我的問題中渲染?測試:$ N $
請不要進行編輯,使答案無意義。編輯之前你正在討論遞歸深度,所以現在所有的答案都集中在這一點上。但是你真的遇到了遞歸深度問題嗎?看起來你只會爲't'的每一級遞歸一次,在你的例子中是4,然後是2。 – Teepeemm
謝謝澄清。我意識到遞歸不應該是一個問題,所以任何確定深度的快速方法都應該起作用。它使問題更容易解釋(遞歸部分不必要地使問題複雜化)。 –