生活随笔
收集整理的這篇文章主要介紹了
离开停车场
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目描述
你被困在一個多層停車場。您的任務(wù)是僅使用樓梯離開停車場。出口總是在一樓的右下角。
創(chuàng)建一個采用矩陣的函數(shù),其中:
- 0?表示免費停車位。
- 1?表示樓梯。
- 2?表示您的起始位置,可以在停車場的任何一層。
- 出口總是在一樓的右下角。
- 您必須使用樓梯?1?才能下一層。
- 除了一樓,每一層只有一個樓梯,一樓沒有任何樓梯。
請你設(shè)計并返回一個最快離開停車場的字符串。
輸入輸出格式
輸入格式
第一行 N 表示循環(huán)的次數(shù)。
第二行有 test_data 表示 測試數(shù)據(jù)的字符串,這些字符串中間都用空格隔開。
輸出格式
返回離開停車場的字符串。
輸入輸出樣例1
輸入
2
1 0 0 0 2
0 0 0 0 0
輸出
L4 D1 R4
輸入輸出樣例2
輸入
3
2 0 0 1 0
0 0 0 1 0
0 0 0 0 0
輸出
R3 D2 R1
解釋
表示向右走三下,向下走兩下,再向右走一下。
說明提示
arr = [ [1, 0, 0, 0, 2], [0, 0, 0, 0, 0] ]# 從2開始,向左移動4次=“L4” # 從樓梯下 1 步 = “D1” # 向右移動 4 次從右下角退出 = "R4" def parking_exit(lst): # 定義一個離開停車場的函數(shù) 并接收一個矩陣 # ********Begin*********** # 結(jié)果集數(shù)據(jù)列表 route = [] # 累加數(shù)據(jù) tmp = "" # all_tmp = "" pos = lst[0].index(2) # 獲取矩陣中第一行的數(shù)據(jù)你位置的索引 for i in range(len(lst) - 1): # 找到矩陣中每行樓梯的索引 strcs = lst[i].index(1) if strcs < pos: # 當樓梯的索引位置小于你所在位置的索引時 tmp = "L" + str(pos - strcs) # 對我們的tmp數(shù)據(jù)進行計算返回出向左走的步數(shù)。 route.append(tmp) # 存入列表并向下一格 route.append("D1") elif strcs > pos: # 當樓梯索引位置大于你的索引位置 tmp = "R" + str(strcs - pos) # 那么向右走對應(yīng)的數(shù)值。 route.append(tmp) # 存入到數(shù)據(jù)中 route.append("D1") # 存入列表并向下一格 elif strcs == pos: # 當你就在樓梯口中時 if (route[-1][0] == "D"): # 如果上一次是向下的那么這一次就向下走兩格。 route[-1] = "D" + str(int(route[-1][1]) + 1) else: route.append("D1") tmp = "" pos = strcs # 如果當你的位置小于矩陣第一行 if pos < len(lst[0]) - 1: # 那么向右走相應(yīng)的步數(shù) route.append("R" + str(len(lst[0]) - 1 - pos)) for k in route: all_tmp += k + ' ' return all_tmp # ********End*************
'''arr = [ [1, 0, 0, 0, 2], [0, 0, 0, 0, 0]
]
# 從2開始,向左移動4次=“L4”
# 從樓梯下 1 步 = “D1”
# 向右移動 4 次從右下角退出 = "R4"
'''
# 獲取用戶輸入
N = int(input())
lst = []
for i in range(N): a = [int(i) for i in input().split()] lst.append(a)
print(parking_exit(lst))0
總結(jié)
以上是生活随笔為你收集整理的离开停车场的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。