1. 程式人生 > >leetCode - 簡化路徑(Swift實現)

leetCode - 簡化路徑(Swift實現)

要求:

給定一個文件 (Unix-style) 的完全路徑,請進行路徑簡化。

例如,
path = "/home/", => "/home"
path = "/a/./b/../../c/", => "/c"

邊界情況:

  • 你是否考慮了 路徑 = "/../" 的情況?在這種情況下,你需返回 "/" 。
  • 此外,路徑中也可能包含多個斜槓 '/' ,如 "/home//foo/" 。在這種情況下,你可忽略多餘的斜槓,返回 "/home/foo" 。
 1 class
Solution { 2 func simplifyPath(_ path: String) -> String { 3 var stack = [String]() 4 let paths = path.components(separatedBy: "/") 5 for path in paths { 6 guard path != "." else { 7 continue 8 } 9 10 if
path == ".." { 11 if stack.count > 0 { 12 stack .removeLast() 13 } 14 }else if path != "" { 15 stack.append(path) 16 } 17 } 18 19 let result = stack.reduce("") { (total, dir) in 20 return
"\(total)/\(dir)" 21 } 22 23 return result.isEmpty ? "/": result 24 } 25 }