给定一个文档 (Unix-style) 的完全路径,请进行路径简化。
例如, path = "/home/", => "/home" path = "/a/./b/../../c/", => "/c"边界情况:
你是否考虑了 路径 = "/../" 的情况? 在这种情况下,你需返回 "/" 。 此外,路径中也可能包含多个斜杠 '/' ,如
"/home//foo/" 。 在这种情况下,你可忽略多余的斜杠,返回 "/home/foo" 。
解决的思路很简单,用栈来解决。正常的路径入栈,‘..’出栈,‘.’忽略
/** * @param {string} path * @return {string} */var simplifyPath = function(path) { var result = '' var tempPath = [] var paths = path.split('/') paths.map(val => { if(val && val === '..') { tempPath.pop() }else if(val && val !== '.') { tempPath.push(val) } }) tempPath.length ? result = '/'+tempPath.join('/') : result = '/' return result};