-
Notifications
You must be signed in to change notification settings - Fork 27
/
Copy path071. 简化路径.js
41 lines (37 loc) · 1.03 KB
/
071. 简化路径.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/**
* Created by ww on 2018/8/15.
*/
/**给定一个文档 (Unix-style) 的完全路径,请进行路径简化。
*
* 例如,
* path = "/home/", => "/home"
* path = "/a/./b/../../c/", => "/c"
* 边界情况:
* 你是否考虑了 路径 = "/../" 的情况?
* 在这种情况下,你需返回 "/" 。
* 此外,路径中也可能包含多个斜杠 '/' ,如 "/home//foo/" 。
* 在这种情况下,你可忽略多余的斜杠,返回 "/home/foo" 。
*/
/**
* @param {string} path
* @return {string}
*/
var simplifyPath = function(path) {
var folders = path.split('/');
var stack = [];
for (let i = 0, len = folders.length; i < len; i++) {
if (folders[i] === '..') {
stack.pop();
continue;
}
if (folders[i] && folders[i] !== '.') {
stack.push(folders[i]);
}
}
// console.log('/' + stack.join('/'))
return '/' + stack.join('/');
};
// var path = "/a/./b/../../c//";
// var path = "/home/";
var path = "/../";
console.log(simplifyPath(path));