| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- # 经典递归求解问题:
- # 1. 迷宫寻路
- # 2. 汉诺塔(梵塔)
- # 3. 骑士周游
- # 4. 八皇后
- def f(n: int, m=1) -> int:
- if n == 0 or n == 1:
- return m
- return f(n - 1, n * m)
- def sum(n: int) -> int:
- if n == 1:
- return 1
- return n + sum(n - 1)
- def steps(n: int, m={}) -> int:
- if n < 0:
- return 0
- elif n == 0:
- return 1
- else:
- try:
- return m[n]
- except:
- m[n] = steps(n - 1) + steps(n - 2) + steps(n - 3)
- return m[n]
- def list_depth(items: list) -> int:
- max_depth = 1 if isinstance(items, list) else 0
- if max_depth:
- for item in items:
- if isinstance(item, list):
- max_depth = max(max_depth, list_depth(item) + 1)
- return max_depth
- def main():
- mylist = [1, ['a', ['b', ['c']]],[100, [200, 300, [400, [500, [600, [700]]]]]]]
- thylist = [[], [[[]]], [[], []]]
- print(list_depth(mylist))
- print(list_depth(thylist))
- if __name__ == '__main__':
- main()
|