Leetcode 71 棧 簡化路徑 策略模式

2021-09-27 03:36:46 字數 1172 閱讀 2698

要求:返回的路徑必須以/開頭

兩個目錄名之間必須只有乙個/最後乙個目錄名不能以/結尾

不能出現兩個..相連

let result = ;

// 注意使用轉義字元,其實沒有轉義字元也能分割開

let patharr = path.split("\/");

// 遍歷陣列,如果有兩個`.`相連,刪除上級目錄

// 如果兩個`/`之間有乙個`.`,跳過,不處理

// 如果有兩個`/`相連(分割後,兩個`/`之間會產生乙個空陣列元素),

patharr.foreach(val => )

return "/" + result.join("/")

};

// leetcode.71.簡化路徑.策略模式

// 要求:使用策略模式

// 選擇策略與策略實現分離

// 可復用,彈性充足

// 輸入乙個字串,選擇策略,對字串進行篩選

/*** @param path

* @return

*//*

* 策略模式,分為兩個部分,一部分是存放策略,一部分是存放策略的挑選,執行**。

* 策略的挑選執行要單獨設定乙個類,存放挑選出來的

* */

var simplifypath = function(path)

return value;

},// 兩個目錄名之間必須只有乙個斜槓

雖然出了乙個自己一直沒有辦法解決的錯,但是在實現的過程中,還是對策略模式有了更深的體會。

可以隨時向stageties

中新增要校驗的策略規則,並通過vadidator例項中的方法呼叫校驗規則。

LeetCode 71 簡化路徑(棧)

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

LeetCode 71 簡化路徑

題目鏈結 題目描述 給定乙個文件 unix style 的完全路徑,請進行路徑簡化。例如,path home home path a b c c 邊界情況 解決方法 2 如果是 則需要出棧 如果棧為空則不操作 因為這是返回上級目錄的符號 3 其他情況壓棧 class solution else p....

leetcode71 簡化路徑

給定乙個文件 unix style 的完全路徑,請進行路徑簡化。例如,path home home path a b c c 邊界情況 你是否考慮了 路徑 的情況?在這種情況下,你需返回 此外,路徑中也可能包含多個斜槓 如 home foo 在這種情況下,你可忽略多餘的斜槓,返回 home foo ...