421 簡化路徑 ( 棧 )

2021-10-12 01:37:30 字數 789 閱讀 1193

lintcode: 421. 簡化路徑

利用 stack 棧

乙個點(.)表示當前目錄本身;此外,兩個點 (..) 表示將目錄切換到上一級(指向父目錄);

輸入

"/a/./../../c/"

輸出 "/c"

期望答案

"/c"

. /./

./可以理解成無用的,我們只需要關心 ../

../..

/ 返回上一級,即將上乙個壓入棧的目錄名字彈出棧

ac code

public

class

solution

elseif(

!str.

equals

("."

)&& str.

length()

>0)

str ="";

}else

}// 取出結果

while

(!stack.

isempty()

)return sb.

length()

>

0? sb.

tostring()

:"/";}

}

棧 71 簡化路徑

以 unix 風格給出乙個檔案的絕對路徑,你需要簡化它。或者換句話說,將其轉換為規範路徑。在 unix 風格的檔案系統中,乙個點 表示當前目錄本身 此外,兩個點 表示將目錄切換到上一級 指向父目錄 兩者都可以是複雜相對路徑的組成部分。更多資訊請參閱 linux unix中的絕對路徑 vs 相對路徑 ...

LeetCode 71 簡化路徑(棧)

以 unix 風格給出乙個檔案的絕對路徑,你需要簡化它。或者換句話說,將其轉換為規範路徑。在 unix 風格的檔案系統中,乙個點 表示當前目錄本身 此外,兩個點 表示將目錄切換到上一級 指向父目錄 兩者都可以是複雜相對路徑的組成部分。請注意,返回的規範路徑必須始終以斜槓 開頭,並且兩個目錄名之間必須...

Leetcode 71 棧 簡化路徑 策略模式

要求 返回的路徑必須以 開頭 兩個目錄名之間必須只有乙個 最後乙個目錄名不能以 結尾 不能出現兩個.相連 let result 注意使用轉義字元,其實沒有轉義字元也能分割開 let patharr path.split 遍歷陣列,如果有兩個 相連,刪除上級目錄 如果兩個 之間有乙個 跳過,不處理 如...