• 每日一题力扣71


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

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

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

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

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/simplify-path
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    class Solution:
        def simplifyPath(self, path: str) -> str:
            stack = []
            path = path.split("/")
    
            for item in path:
                if item == "..":#如果后面的是两个点,且前一个不为空,就不要了,说明中间还有很长的路
                    if stack : stack.pop()
                elif item and item != ".":#只要item不为空且不是点,就压入
                    stack.append(item)
            return "/" + "/".join(stack)
  • 相关阅读:
    Linux 字典数组应用
    Linux shell 字符串切割 内置方法
    【Swing/文本组件】定义自动换行的文本域
    【C++语法基础】实验1
    【Swing程序设计/常用面板】
    【标签组件与图标 3.3】
    【2018.2.26算法总结#分治】
    数据结构#课表排序及查询
    数据结构#前序遍历建立二叉树 输出中序遍历
    OJ#1002 又是a+b
  • 原文地址:https://www.cnblogs.com/liuxiangyan/p/14548670.html
Copyright © 2020-2023  润新知