14
目录计算
对于此挑战,将为您提供一条绝对路径和一条“新”路径(可以是绝对路径,也可以是相对路径),并且您需要返回最终路径。 例如,如果您当前的目录是/var/tmp/test: my_dir 要么 my_dir/ 应返回/var/tmp/test/my_dir ../../my_dir 应该回来 /var/my_dir /my_dir/./ 应该回来 /my_dir ../../../../../ 应该回来 / 要更加学究: 目录是由字母数字字符的非空字符串和符号-,_或. 路径是0或多个目录的列表,用分隔/。绝对路径以a开头/,相对路径则不是。路径可以包含结尾/。 给定第一个路径,您需要“解析”第二个路径。 解决的过程是: 测试第二条路径是否相对。如果是这样,则将绝对路径的目录插入第二个路径的开头。 如果任何目录为..,则将其和上一个目录删除。如果它是第一个目录,则只需将其删除。 如果任何目录为.,则将其删除。 输出最终的绝对路径。您不应该输出结尾/。 您不需要处理不正确的输入。无论所传递的目录在您的计算机上是否实际存在,这些命令都应该起作用。您可以假定所有内容都是目录,即使它具有扩展名。 测试用例 Absolute New Output "/a/b/c" "d" -> "/a/b/c/d" "/a/b/c/" "d" -> "/a/b/c/d" "/a/b/c/" "d/" -> "/a/b/c/d" "/a/b/c" "/d" -> "/d" "/a/b/c" "/d/" -> "/d" "/../a/b/c/" …