|
发表于 2022-5-31 09:33:56
From FishC Mobile
|
显示全部楼层
兄弟,其实题目不难,只是用 C 写比较麻烦(C 是面向过程语言)。因为太麻烦,我就不写 C 了。我写了 Python 给你参考,希望对你有帮助
- n = int(input())
- arr = [input() for _ in range(n)]
- arr = [[int(num) for num in row] for row in arr]
- def foo(arr, r = 0, c = 0, s = ""):
- if r == len(arr) - 1 and c == len(arr[0]) - 1:
- print(s)
- return
- elif r == len(arr) or c == len(arr[0]):
- return
- elif r < 0 or c < 0:
- return
- if arr[r][c]:
- return
- else:
- arr[r][c] = 1
- # go down
- foo(arr[::], r + 1, c, s + 'D')
-
- # go right
- foo(arr[::], r, c + 1, s + 'R')
-
- # go up
- foo(arr[::], r - 1, c, s + 'U')
-
- # go left
- foo(arr[::], r, c - 1, s + 'L')
- foo(arr)
复制代码- 6
- 0111111
- 0011101
- 1001101
- 0011001
- 1000111
- 1110000
- DRDDDRRDRRR
复制代码
|
|