1598 資料夾操作日誌蒐集器(棧)

2021-10-24 15:54:59 字數 1508 閱讀 3252

1. 問題描述:

每當使用者執行變更資料夾操作時,leetcode 檔案系統都會儲存一條日誌記錄。下面給出對變更操作的說明:

"../" :移動到當前資料夾的父資料夾。如果已經在主資料夾下,則 繼續停留在當前資料夾 。

"./" :繼續停留在當前資料夾。

"x/" :移動到名為 x 的子資料夾中。題目資料 保證總是存在資料夾 x 。

給你乙個字串列表 logs ,其中 logs[i] 是使用者在 ith 步執行的操作。檔案系統啟動時位於主資料夾,然後執行 logs 中的操作。

執行完所有變更資料夾操作後,請你找出 返回主資料夾所需的最小步數 。

示例 1:

輸入:logs = ["d1/","d2/","../","d21/","./"]

輸出:2

解釋:執行 "../" 操作變更資料夾 2 次,即可回到主資料夾

示例 2:

輸入:logs = ["d1/","d2/","./","d3/","../","d31/"]

輸出:3

示例 3:

輸入:logs = ["d1/","../","../","../"]

輸出:0

1 <= logs.length <= 103

2 <= logs[i].length <= 10

logs[i] 包含小寫英文本母,數字,'.' 和 '/'

logs[i] 符合語句中描述的格式

資料夾名稱由小寫英文本母和數字組成

2. 思路分析:

分析題目可以知道我們需要根據當前正在遍歷的字串來決定怎麼樣操作檔案:是回到當前資料夾還是上一層資料夾還是進入到其他的資料夾,根據題目的表達的資訊可以知道這是乙個棧的模型的題目,清楚使用棧來解決剩下來的就非常好辦了,我們只需要遍歷當前的字串,對當前字串決定棧頂元素的操作即可(模擬其中的過程即可),最後返回棧的大小即可

3. **如下:

from typing import list

class solution:

def minoperations(self, logs: list[str]) -> int:

stack = list()

for cur in logs:

if cur == "../":

if stack:

stack.pop()

elif cur != "./":

return len(stack)

13 資料夾和目錄操作

2019獨角獸企業重金招聘python工程師標準 獲取當前目錄 getcwd char cwd 300 getcwd cwd,sizeof cwd 設定當前目錄 chdir chdir home 建立目錄 mkdir mkdir test 0751 刪除目錄 rmdir,remove rmdir t...

Python 入門 29 資料夾操作

資料夾,又稱目錄。關於目錄操作的函式 物件等主要集中在三個標準庫 os os.path shutil。一 os 模組 基本操作 1 建立新目錄 1 os.mkdir r 路徑 目錄名 建立指定的目錄,無返回值,建立不成功則丟擲異常。為了避免斜槓與反斜槓引起的麻煩,路徑 目錄名 應該用原始字串形式,即...

UNIXC001 資料夾操作

drwxrwxr x 2 moonx moonx 4096 12月 26 09 12 test 資料夾裡x代表可通過的意思 chmod a x test cd test bash cd test permission denied chmod a x test cd test touch filea...