homework01.py 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. # 经典递归求解问题:
  2. # 1. 迷宫寻路
  3. # 2. 汉诺塔(梵塔)
  4. # 3. 骑士周游
  5. # 4. 八皇后
  6. def f(n: int, m=1) -> int:
  7. if n == 0 or n == 1:
  8. return m
  9. return f(n - 1, n * m)
  10. def sum(n: int) -> int:
  11. if n == 1:
  12. return 1
  13. return n + sum(n - 1)
  14. def steps(n: int, m={}) -> int:
  15. if n < 0:
  16. return 0
  17. elif n == 0:
  18. return 1
  19. else:
  20. try:
  21. return m[n]
  22. except:
  23. m[n] = steps(n - 1) + steps(n - 2) + steps(n - 3)
  24. return m[n]
  25. def list_depth(items: list) -> int:
  26. max_depth = 1 if isinstance(items, list) else 0
  27. if max_depth:
  28. for item in items:
  29. if isinstance(item, list):
  30. max_depth = max(max_depth, list_depth(item) + 1)
  31. return max_depth
  32. def main():
  33. mylist = [1, ['a', ['b', ['c']]],[100, [200, 300, [400, [500, [600, [700]]]]]]]
  34. thylist = [[], [[[]]], [[], []]]
  35. print(list_depth(mylist))
  36. print(list_depth(thylist))
  37. if __name__ == '__main__':
  38. main()