從零開始刷力扣(九十七) 71 簡化路徑

2021-10-19 10:00:22 字數 1131 閱讀 6391

給你乙個字串path,表示指向某一檔案或目錄的 unix 風格絕對路徑(以'/'開頭),請你將其轉化為更加簡潔的規範路徑。

在 unix 風格的檔案系統中,乙個點(.)表示當前目錄本身;此外,兩個點 (..) 表示將目錄切換到上一級(指向父目錄);兩者都可以是複雜相對路徑的組成部分。任意多個連續的斜槓(即,'//')都被視為單個斜槓 '/' 。 對於此問題,任何其他格式的點(例如,'...')均被視為檔案/目錄名稱。

請注意,返回的規範路徑必須遵循下述格式:

返回簡化後得到的規範路徑

示例 1:

輸入:path = "/home/"

輸出:"/home"

解釋:注意,最後乙個目錄名後面沒有斜槓。

示例 2:

輸入:path = "/../"

輸出:"/"

示例 3:

輸入:path = "/home//foo/"

輸出:"/home/foo"

解釋:在規範路徑中,多個連續斜槓需要用乙個斜槓替換。

使用 string.split() 方法, 以斜槓 (/) 為分隔符, 將 unix 路徑 path 拆分為若干字串組成的陣列.

將字串順序壓入棧中

不包含元素, 乙個點 (.) 時, 跳過.

兩個點 (..) 時, 將當前棧頂元素移出棧.

從零開始刷力扣(十七) 598 範圍求和 II

題目描述 給定乙個初始元素全部為0,大小為 m n 的矩陣m以及在m上的一系列更新操作。操作用二維陣列表示,其中的每個操作用乙個含有兩個正整數 a 和 b 的陣列表示,含義是將所有符合 0 i a 以及 0 j b 的元素 m i j 的值都增加 1。在執行給定的一系列操作後,你需要返回矩陣中含有最...

從零開始刷力扣(五) 645 錯誤的集合

題目描述 集合s包含從1到n的整數。不幸的是,因為資料錯誤,導致集合裡面某乙個元素複製了成了集合裡面的另外乙個元素的值,導致集合丟失了乙個整數並且有乙個元素重複 給定乙個陣列nums代表了集合s發生錯誤後的結果。你的任務是首先尋找到重複出現的整數,再找到丟失的整數,將它們以陣列的形式返回。示例1 輸...

從零開始刷力扣(六十七) 43 字串相乘

給定兩個以字串形式表示的非負整數num1和num2,返回num1和num2的乘積,它們的乘積也表示為字串形式。說明 num1和num2的長度小於110。num1和num2只包含數字0 9。num1和num2均不以零開頭,除非是數字 0 本身。不能使用任何標準庫的大數型別 比如 biginteger ...