当前位置: 首页 > news >正文

成都做网站做的好的公司南通市网站

成都做网站做的好的公司,南通市网站,龙岩网站优化,公司办公室布局效果图简化路径 给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 ‘/’ 开头),请你将其转化为更加简洁的规范路径。 在 Unix 风格的文件系统中,一个点(.)表示当前目录本身&am…

简化路径

  • 给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 ‘/’ 开头),请你将其转化为更加简洁的规范路径。

  • 在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (…) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。任意多个连续的斜杠(即,‘//’)都被视为单个斜杠 ‘/’ 。 对于此问题,任何其他格式的点(例如,‘…’)均被视为文件/目录名称。

请注意,返回的 规范路径 必须遵循下述格式:

  • 始终以斜杠 ‘/’ 开头。
  • 两个目录名之间必须只有一个斜杠 ‘/’ 。
  • 最后一个目录名(如果存在)不能 以 ‘/’ 结尾。
  • 此外,路径仅包含从根目录到目标文件或目录的路径上的目录(即,不含 ‘.’ 或 ‘…’)。

返回简化后得到的 规范路径 。

示例 1:

输入:path = “/home//foo/”
输出:“/home/foo”
解释:在规范路径中,多个连续斜杠需要用一个斜杠替换。

示例 2:

输入:path = “/a/./b/…/…/c/”
输出:“/c”

  • 开始路径: /
  • 进入目录 a: /a
  • 当前目录 .: /a(不变)
  • 进入目录 b: /a/b
  • 返回上一级目录 …: /a
  • 再次返回上一级目录 …: /
  • 进入目录 c: /c
  • 通过这些步骤,可以看到,所有的部分按顺序处理后,最终简化路径是 /c。

解题思路

  • 拆分路径: 使用斜杠 / 将路径字符串拆分为多个部分。

  • 使用栈处理路径部分:

  •  创建一个栈,用于存储路径中的有效部分。
    
  •  遍历拆分后的路径部分,逐一处理:
    
  •  如果部分为空字符串或为 .,则跳过。
    
  •  如果部分为 ..,则弹出栈顶元素(如果栈不为空),表示返回上一级目录。
    
  •  其他情况下,将部分压入栈中,表示进入新的子目录。
    
  • 构建简化后的路径: 使用栈中的部分重新构建简化后的路径,确保路径以 / 开头并且各部分之间只有一个 /。

Java实现

public class SimplifyPath {public String simplifyPath(String path) {// 使用斜杠拆分路径String[] parts = path.split("/");Stack<String> stack = new Stack<>();// 遍历每个部分for (String part : parts) {if (part.equals("") || part.equals(".")) {// 跳过空字符串和 "."continue;} else if (part.equals("..")) {// 弹出栈顶元素,表示返回上一级目录if (!stack.isEmpty()) {stack.pop();}} else {// 其他情况下,将部分压入栈中stack.push(part);}}// 构建简化后的路径StringBuilder simplifiedPath = new StringBuilder();for (String dir : stack) {simplifiedPath.append("/").append(dir);}// 如果简化后的路径为空,返回根目录 "/"return simplifiedPath.length() > 0 ? simplifiedPath.toString() : "/";}public static void main(String[] args) {SimplifyPath sp = new SimplifyPath();System.out.println(sp.simplifyPath("/home/"));           // 输出: "/home"System.out.println(sp.simplifyPath("/../"));             // 输出: "/"System.out.println(sp.simplifyPath("/home//foo/"));      // 输出: "/home/foo"System.out.println(sp.simplifyPath("/a/./b/../../c/"));  // 输出: "/c"}
}

时间空间复杂度

  • 时间复杂度: O(n),其中 n 是输入路径的长度。拆分路径和遍历路径部分都需要线性时间。
  • 空间复杂度: O(n),栈空间在最坏情况下可能需要存储所有路径部分。构建最终简化路径的字符串也需要线性空间。
http://www.yayakq.cn/news/300003/

相关文章:

  • 棠下手机网站建设电话东莞市手机网站建设公司
  • 网站建设必须在服务器中国软件公司
  • 如何做网站 知乎建设一个购物网站需要什么意思
  • 如何做网站商铺甪直做网站
  • 个人网站设计首页做网站困难嘛
  • 深圳找工作的网站游戏制作要学什么专业
  • 90设计网站创建时间网络营销与策划
  • 京东联盟的网站怎么做网站域名备案在阿里云怎么做
  • 网站怎样做巩义网站建设定制
  • 学做网站要会哪些建设网站需要用到哪些技术人员
  • 网站的ico怎么做苏州注册公司好快记财务
  • 外贸网站建设专业定制深圳市住房保障署官网登录
  • 网站建设 新要求搭建电商平台 方案
  • 企业网站事例拓者设计吧官网图片
  • vps主机上搭建网站html菜鸟初学
  • 交互网站怎么做的免费在线观看网址入口
  • 普工找工作哪个网站好网站的前台后台
  • hdwiki做网站京东网站的公司全名
  • 上海网站建设 paikycaptcha wordpress
  • 保定手机网站制作免费公司介绍网站怎么做
  • 南京本地网站建设网站设计怎么做明信片
  • 山西中小学网站建设wordpress设置tdk
  • 网站界面切片做程序网站建设中html 下载
  • 中建南方建设集团网站网站前台设计
  • 那种网站2021北京信息网站建设
  • 伪静态网站如何做专门用来制作网页的软件是
  • 买个网站服务器多少钱wordpress 随机范围点击量
  • 旅游网站建设规模宝塔系统怎么建设网站
  • 广州静态管理天津seo代理商
  • 17一起广州做网站长沙外贸网站开发