当前位置: 首页 > 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/655490/

相关文章:

  • 小企业网站建设地点用ps设计网页页面步骤
  • wordpress教程 pdf在线网站seo优化
  • 公司要想做个网站这么弄网站开发所需要的技术
  • 网站建设与实践心得公众号引流推广平台
  • 网站备案 空间备案 域名备案三六五网做网站吗
  • 网站建设自查工作教育培训机构推荐
  • wordpress 增加站长统计服务器用来做网站和数据库
  • 字体设计欣赏网站合肥seo推广公司哪家好
  • 网站建设分金手指排名十wordpress安装伪静态
  • 辽宁省品牌建设促进会网站网站镜像代理怎么做
  • 简单flash个人网站网站建设考评办法
  • 商场设计总平面图泉州网站排名优化
  • 基于诗歌网站开发开题报告网页设计与制作教程第5版
  • 盐城公司网站建设深圳宝安固戍小学网站建设
  • 宜宾汽车网站建设设计接单
  • 培训网站建设方案说明书不用源码做网站
  • 如何建设网站服务器seo推广网络
  • 淘宝作图在哪个网站上做图做网站App价格多少
  • wordpress建站落后吗嘉兴网站制作多少钱
  • 后台网站模板 html济南的企业网站
  • c语言程序设计网站自主建设网站的意义
  • 住房和城乡建设部课题网站ui设计与制作培训
  • 车身做网站宣传图微信公众号排版编辑
  • 最炫的网站小红书推广平台
  • phpcms做的网站有哪些tp5网站开发模板下载
  • 怎么看网站开发者页面许昌建网站的公司在哪条路
  • 江苏网站建设seo优化学校门户网站什么意思
  • 网站前台的实现全网软文推广
  • 深圳龙岗企业网站建设南沙区交通和建设局网站
  • 云南网站建设优化技术前端和后端的区别工资