题目:给定一个文档 (Unix-style) 的完全路径,请进行路径简化.例如,
path = "/home/"
, => "/home"
path = "/a/./b/../../c/"
, => "/c"
边界情况:
- 你是否考虑了 路径 =
"/../"
的情况?
在这种情况下,你需返回 "/"
。
- 此外,路径中也可能包含多个斜杠
'/'
,如 "/home//foo/"
。
在这种情况下,你可忽略多余的斜杠,返回 "/home/foo"
。
-
char* simplifyPath(char* path) {
char *stack[1024]; /*定义一个字符型指针数组stack*/
int i = 0, bottom = -1, start = 0; /*bottom作为栈顶指针*/
int len = strlen(path);
while (i < len)
{
if (path[i] != '/')
{
/*当存在某一段为/../或者/..将栈内的字符串减少一个*/
if (path[i] == '.'&&path[i + 1] == '.' && (path[i + 2] == '/' || path[i + 2] == '