怎样做网站检索数据分析,软文广告图片,团购网站短信平台,北京网站建设培训机构目录 1.题目2.答案3.提交结果截图 链接#xff1a; 简化路径 1.题目
给你一个字符串 path #xff0c;表示指向某一文件或目录的 Unix 风格 绝对路径 #xff08;以 / 开头#xff09;#xff0c;请你将其转化为更加简洁的规范路径。
在 Unix 风格的文件系统中#xff… 目录 1.题目2.答案3.提交结果截图 链接 简化路径 1.题目
给你一个字符串 path 表示指向某一文件或目录的 Unix 风格 绝对路径 以 / 开头请你将其转化为更加简洁的规范路径。
在 Unix 风格的文件系统中一个点.表示当前目录本身此外两个点 .. 表示将目录切换到上一级指向父目录两者都可以是复杂相对路径的组成部分。任意多个连续的斜杠即//都被视为单个斜杠 / 。 对于此问题任何其他格式的点例如...均被视为文件/目录名称。
请注意返回的 规范路径 必须遵循下述格式
始终以斜杠 / 开头。两个目录名之间必须只有一个斜杠 / 。最后一个目录名如果存在不能 以 / 结尾。此外路径仅包含从根目录到目标文件或目录的路径上的目录即不含 . 或 ..。
返回简化后得到的 规范路径 。
示例 1
输入path /home/
输出/home
解释注意最后一个目录名后面没有斜杠。 示例 2
输入path /../
输出/
解释从根目录向上一级是不可行的因为根目录是你可以到达的最高级。示例 3
输入path /home//foo/
输出/home/foo
解释在规范路径中多个连续斜杠需要用一个斜杠替换。示例 4
输入path /a/./b/../../c/
输出/c提示
1 path.length 3000path 由英文字母数字./ 或 _ 组成。path 是一个有效的 Unix 风格绝对路径。 2.答案
class Solution {public String simplifyPath(String path) {String[] paths path.split(/);StackString stack new Stack();for (String p : paths) {if (p.length() 0 || ..equals(p)) {continue;}if (...equals(p)) {if (!stack.empty()) {stack.pop();}} else {stack.add(p);}}// 注意这里用 String.join() 效率会下降if (stack.empty()) {return /;}StringBuilder builder new StringBuilder();for (String s : stack) {builder.append(/).append(s);}return builder.toString();}
}3.提交结果截图 整理完毕完结撒花~