要求:
给定一个文档 (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 }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。