Python程式:查詢返回主資料夾所需的最小跳轉次數


假設我們有一些日誌記錄檔案,其中包含進入資料夾的路徑,可能包含不同的符號,例如:

  • "../":從當前資料夾移動到父資料夾。(如果位於主資料夾,則位置不變)。

  • "./":保留在當前資料夾。

  • "x/":移動到名為 x 的子資料夾。

根據日誌,我們需要找到從我們停止的最後一個資料夾返回到主資料夾所需的最小操作次數。

例如,如果輸入為 logs = ["Dir1/","Dir2/","../","Dir2/","Dir3/","./"],則輸出為 3

從圖中我們可以看到,我們需要後退三次才能到達主資料夾。

為了解決這個問題,我們將遵循以下步驟:

  • stk := 新建一個列表

  • 對於logs中的每個專案i,執行以下操作:

    • 如果i等於"../"並且stk的大小>0,則

      • 刪除stk中的最後一個元素

    • 否則,如果i不等於"./”並且i不等於"../",則

      • 將i插入到stk的末尾

    • 否則

      • 進行下一次迭代

  • 返回stk中的專案數量

示例 (Python)

讓我們來看下面的實現,以便更好地理解:

 線上演示

def solve(logs):
   stk = []
   for i in logs:
      if i == "../" and len(stk) > 0:
         stk.pop()
      elif i != "./" and i != "../":
         stk.append(i)
      else:
         continue
   return len(stk)

logs = ["Dir1/","Dir2/","../","Dir2/","Dir3/","./"]
print(solve(logs))

輸入

["Dir1/","Dir2/","../","Dir2/","Dir3/","./"]

輸出

3

更新於:2021年5月17日

282 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告