情境模擬: 資料夾深度 Crawler Log Folder_Leetcode #1598

閱讀時間約 3 分鐘

題目敘述 Crawler Log Folder

題目給定一串目錄進出的操作指令,請問所有指令完成後,回到根目錄需要幾個步驟?

../ 代表回到上一層目錄
./ 代表留在目前的目錄
x/ 代表前往名稱為x的子目錄

測試範例

Example 1:

raw-image


Input: logs = ["d1/","d2/","../","d21/","./"]
Output: 2
Explanation: Use this change folder operation "../" 2 times and go back to the main folder.


Example 2:

raw-image


Input: logs = ["d1/","d2/","./","d3/","../","d31/"]
Output: 3


Example 3:

Input: logs = ["d1/","../","../","../"]
Output: 0

約束條件

Constraints:

  • 1 <= logs.length <= 10^3

指令的數量介於1~1000個

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

每個指令的長度介於2~10之間

  • logs[i] contains lowercase English letters, digits, '.', and '/'.

指令只會有小寫英文字母、數字、.、斜線

  • logs[i] follows the format described in the statement.

指令都符合題目敘述的指令格式

  • Folder names consist of lowercase English letters and digits.

資料夾名稱只會有小寫英文字母和數字


演算法 模擬法

直接根據每一條指令進行模擬

如果遇到../就回到上一層的目錄,深度-1。

如果遇到./就留在目前目錄,深度不改變。

如果遇到x/就進入到下一層名子為x的子目錄,深度+1。


最後,模擬結束時,深度就是回到根目錄所需要的操作次數。


程式碼 模擬法

class Solution:
def minOperations(self, logs: List[str]) -> int:

level = 0

for command in logs:

if command == "../":

# go backward, up to root(0) at most
level = max(level-1, 0)
elif command != "./":

# go forward
level += 1

return level

複雜度分析

時間複雜度: O(n)

線性掃描每個指令,所需時間為O(n)。

空間複查度: O(1)

所用到的都是固定尺寸的臨時變數,為常數級別O(1)。


Reference

[1] Crawler Log Folder - LeetCode

86會員
425內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
發表第一個留言支持創作者!
題目敘述 Merge Nodes in Between Zeros 給定一個鏈結串列,合併非零區間的節點(以加總的方式合併),輸出合併後的鏈結串列。
題目敘述 Intersection of Two Arrays II 給定兩個輸入陣列,請找出兩個陣列交集的元素,並且依照出現次數輸出。 測試範例 Example 1: Input: nums1 = [1,2,2,1], nums2 = [2,2] Output: [2,2] 交集元素
題目敘述 All Ancestors of a Node in a Directed Acyclic Graph 給定一個有向無環圖,請找出每個點的祖先,以陣列的形式返回答案。
題目敘述 Most Profit Assigning Work 公司裡有n位員工,m件任務。 每位員工的能力記錄在worker陣列。 每個任務對應的能力要求和獲利紀錄在difficulty 和profit陣列。 不同的員工可以做同樣的任務。 請問怎麼分配任務可以得到整體最大獲利?
題目敘述 Patching Array 題目給定一個整數陣列, 請問還要補上多少個數字,才能用這些數字的和拼湊出所有1~n的整數。
題目敘述 IPO 新企業準備上市增資,初始資本是w,可以參加k個專案。 每個專案的獲利和投入成本分別記錄在profits和capital陣列。 請問,在盡可能增資的情況下,最後最大的總資本是多少?
題目敘述 Merge Nodes in Between Zeros 給定一個鏈結串列,合併非零區間的節點(以加總的方式合併),輸出合併後的鏈結串列。
題目敘述 Intersection of Two Arrays II 給定兩個輸入陣列,請找出兩個陣列交集的元素,並且依照出現次數輸出。 測試範例 Example 1: Input: nums1 = [1,2,2,1], nums2 = [2,2] Output: [2,2] 交集元素
題目敘述 All Ancestors of a Node in a Directed Acyclic Graph 給定一個有向無環圖,請找出每個點的祖先,以陣列的形式返回答案。
題目敘述 Most Profit Assigning Work 公司裡有n位員工,m件任務。 每位員工的能力記錄在worker陣列。 每個任務對應的能力要求和獲利紀錄在difficulty 和profit陣列。 不同的員工可以做同樣的任務。 請問怎麼分配任務可以得到整體最大獲利?
題目敘述 Patching Array 題目給定一個整數陣列, 請問還要補上多少個數字,才能用這些數字的和拼湊出所有1~n的整數。
題目敘述 IPO 新企業準備上市增資,初始資本是w,可以參加k個專案。 每個專案的獲利和投入成本分別記錄在profits和capital陣列。 請問,在盡可能增資的情況下,最後最大的總資本是多少?
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
敘述者: 那天,你像往常一樣走在街上,一邊思考著自己的創業夢。突然,你的目光被一個貼著招租廣告的店面吸引住了。 你: 哇,這個店面看起來不錯,不知道會不會太貴? 陌生人 (房東): 你好,你對這個店面感興趣嗎? 你: 嗯,是的,但我在考慮價格問題。剛開始創業,資金有限。 房東: 我可以理解。
Thumbnail
閒聊 相較於前面2篇,鴻海&日月光,是在除權息後,出現大幅度回檔,進行抄底反彈。 20230705操作隨筆-與鴻海的恩怨情仇|方格子 vocus 20230705操作隨筆-與鴻海的恩怨情仇|方格子 vocus 這次是在車上,搭著除權息行情,進行一波操作,2波價差都有吃到,一起存股鞋子的網友,
Thumbnail
AI室內設計工具,大致上可以提供四大產業面向的功能:1.對零售實體店家而言,可以展現店家形象;2.電子商務方面給予模擬產品於各種空間內展示的功能,省去實品於攝影棚拍攝的步驟及成本;3.對於房產或房東來說,更便於優化房屋或建築物等內飾及外觀的塑造;4.室內設計師、建築師、景觀師、佈置師等專家⋯⋯
對自閉症者而言,根本無法連串「上課要坐好=我要坐好」的相關性。 這情況,該怎麼辦? 安坐訓練務必進行 這在入幼稚園前,就要進行了。 剛開始,就要以角落為主,讓自閉症者使初步認知。 在自閉症者經由小活動的進行,感到好玩而有動機,就開始走出小世界。 在進行撤掉桌椅時,以漸進式為主 基本上,
Thumbnail
好消息是你又多了一條充滿紅利的虛擬溝通渠道,壞消息是沒有人能告訴你如何準確預估這裡的 ROAS 或合理化你的 ROI。It’s time to show your entrepreneurship! 在進入正題之前想 Murmur 一下當代資深行銷從業人員的苦痛與憂傷… 這個主題的文章會帶到:
小李剛從口譯訓練班畢業,他所合作的翻譯社告訴他有一個急的口譯case,小李二話不說就答應了,因為他實在想把握住每一個鍛鍊的機會。 不過翻譯社才把小李的履歷提交給客戶就被打了回票,因為小李沒有任何實戰的戰績,因此,機會就飛走了。 小李受此打擊,但不氣餒,為了累積經驗,他不久答應了一個朋友的請託,做了一
Thumbnail
前兩篇講了許多,但我人微言輕,憑藉什麼讓人買單?網路上不也很多人做過討論了,這裡所說的又有什麼不一樣?以下,我們就來用數字說話,基於不同程度的簡化與假設,逐步做說明。開始之前先說一句:無誠勿試。
Thumbnail
        酸痛之道博大精深,每天這樣治療,總感到還有不足之處。趁著居家辦公的機會,在休息時間時,一秒就可以來作伸展運動。一樣平躺後,把癢癢球放到背部,利用身體的重量來壓迫背部的肌肉,直接刺激酸痛點就是直球對決!         只要注意不要用力過猛,以免治療酸痛不成,反倒是造成
Thumbnail
回首歷史,你我都會認同,我們都不會是納粹的一員,不會成為盧安達大屠殺的加害者吧? 本文以試圖瞭解暴力、酷刑拷打或大屠殺的角度,讓讀者得知「去個人化」與「去人性化」如何嚴重影響我們對待他人的方式。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
敘述者: 那天,你像往常一樣走在街上,一邊思考著自己的創業夢。突然,你的目光被一個貼著招租廣告的店面吸引住了。 你: 哇,這個店面看起來不錯,不知道會不會太貴? 陌生人 (房東): 你好,你對這個店面感興趣嗎? 你: 嗯,是的,但我在考慮價格問題。剛開始創業,資金有限。 房東: 我可以理解。
Thumbnail
閒聊 相較於前面2篇,鴻海&日月光,是在除權息後,出現大幅度回檔,進行抄底反彈。 20230705操作隨筆-與鴻海的恩怨情仇|方格子 vocus 20230705操作隨筆-與鴻海的恩怨情仇|方格子 vocus 這次是在車上,搭著除權息行情,進行一波操作,2波價差都有吃到,一起存股鞋子的網友,
Thumbnail
AI室內設計工具,大致上可以提供四大產業面向的功能:1.對零售實體店家而言,可以展現店家形象;2.電子商務方面給予模擬產品於各種空間內展示的功能,省去實品於攝影棚拍攝的步驟及成本;3.對於房產或房東來說,更便於優化房屋或建築物等內飾及外觀的塑造;4.室內設計師、建築師、景觀師、佈置師等專家⋯⋯
對自閉症者而言,根本無法連串「上課要坐好=我要坐好」的相關性。 這情況,該怎麼辦? 安坐訓練務必進行 這在入幼稚園前,就要進行了。 剛開始,就要以角落為主,讓自閉症者使初步認知。 在自閉症者經由小活動的進行,感到好玩而有動機,就開始走出小世界。 在進行撤掉桌椅時,以漸進式為主 基本上,
Thumbnail
好消息是你又多了一條充滿紅利的虛擬溝通渠道,壞消息是沒有人能告訴你如何準確預估這裡的 ROAS 或合理化你的 ROI。It’s time to show your entrepreneurship! 在進入正題之前想 Murmur 一下當代資深行銷從業人員的苦痛與憂傷… 這個主題的文章會帶到:
小李剛從口譯訓練班畢業,他所合作的翻譯社告訴他有一個急的口譯case,小李二話不說就答應了,因為他實在想把握住每一個鍛鍊的機會。 不過翻譯社才把小李的履歷提交給客戶就被打了回票,因為小李沒有任何實戰的戰績,因此,機會就飛走了。 小李受此打擊,但不氣餒,為了累積經驗,他不久答應了一個朋友的請託,做了一
Thumbnail
前兩篇講了許多,但我人微言輕,憑藉什麼讓人買單?網路上不也很多人做過討論了,這裡所說的又有什麼不一樣?以下,我們就來用數字說話,基於不同程度的簡化與假設,逐步做說明。開始之前先說一句:無誠勿試。
Thumbnail
        酸痛之道博大精深,每天這樣治療,總感到還有不足之處。趁著居家辦公的機會,在休息時間時,一秒就可以來作伸展運動。一樣平躺後,把癢癢球放到背部,利用身體的重量來壓迫背部的肌肉,直接刺激酸痛點就是直球對決!         只要注意不要用力過猛,以免治療酸痛不成,反倒是造成
Thumbnail
回首歷史,你我都會認同,我們都不會是納粹的一員,不會成為盧安達大屠殺的加害者吧? 本文以試圖瞭解暴力、酷刑拷打或大屠殺的角度,讓讀者得知「去個人化」與「去人性化」如何嚴重影響我們對待他人的方式。