如何为网站建设内容,建设厅证各省网站都可以查吗,南宁建设学院官网,深圳哪家公司需要网站建设的简化路径
https://leetcode.cn/problems/simplify-path/description/
描述 给你一个字符串 path #xff0c;表示指向某一文件或目录的 Unix 风格 绝对路径 #xff08;以 ‘/’ 开头#xff09;#xff0c;请你将其转化为 更加简洁的规范路径 在 Unix 风格的文件系统中…简化路径
https://leetcode.cn/problems/simplify-path/description/
描述 给你一个字符串 path 表示指向某一文件或目录的 Unix 风格 绝对路径 以 ‘/’ 开头请你将其转化为 更加简洁的规范路径 在 Unix 风格的文件系统中规则如下 一个点 ‘.’ 表示当前目录本身此外两个点 ‘…’ 表示将目录切换到上一级指向父目录任意多个连续的斜杠即‘//’ 或 ‘///’都被视为单个斜杠 ‘/’任何其他格式的点例如‘…’ 或 ‘…’均被视为有效的文件/目录名称返回的 简化路径 必须遵循下述格式 始终以斜杠 ‘/’ 开头两个目录名之间必须只有一个斜杠 ‘/’最后一个目录名如果存在不能 以 ‘/’ 结尾此外路径仅包含从根目录到目标文件或目录的路径上的目录即不含 ‘.’ 或 ‘…’ 返回简化后得到的 规范路径
示例 1
输入path /home/
输出/home解释应删除尾随斜杠
示例 2
输入path /home//foo/
输出/home/foo解释多个连续的斜杠被单个斜杠替换。
示例 3
输入path /home/user/Documents/../Pictures
输出/home/user/Pictures解释两个点 “…” 表示上一级目录父目录。
示例 4
输入path /../
输出/解释不可能从根目录上升一级目录。
示例 5
输入path /.../a/../b/c/../d/./
输出/.../b/d解释“…” 在这个问题中是一个合法的目录名。
提示
1 path.length 3000path 由英文字母数字‘.’‘/’ 或 ‘_’ 组成path 是一个有效的 Unix 风格绝对路径
Typescript 版算法实现 1 ) 方案1模拟栈
function simplifyPath(path: string): string {const stk [];for (const s of path.split(/)) {if (!s || s .) {continue;}if (s ! ..) {stk.push(s);} else if (stk.length 0) {stk.pop();}}return / stk.join(/);
};2 ) 方案2栈
function simplifyPath(path: string): string {const names path.split(/);const stack [];for (const name of names) {if (name ..) {stack.length stack.pop()} else if (name.length name ! .) {stack.push(name);}}return / stack.join(/);
};