LeetCode刷题笔记第71题:简化路径

LeetCode刷题笔记第71题:简化路径

题目

给定一个路径,简化路径
要求:
1、以’/‘开头
2、两个目录之间只有一个’/’
3、不能以’/‘结尾
4、路径中不能有’.‘和’…’

想法

利用栈的数据存储方式的思想,将路径字符顺序入栈遇见’…‘则将其前一个目录出栈。
具体操作:利用’/‘将路径进行分割,’./‘表示当前路径,’…/‘表示的上一级目录,因此当遇见’…‘将其前一个目录出栈,将栈中剩余目录用’/'连接即可。

class Solution:
    def simplifyPath(self, path: str) -> str:
        new_path_list = []
        path_list = path.split("/")

        for item in path_list:
            if item == "..":
                if new_path_list:
                    new_path_list.pop()
            elif item and item != ".":
                new_path_list.append(item)
        return "/" + "/".join(new_path_list)

时间复杂度:O(n)
空间复杂度:O(n)

你可能感兴趣的:(leetcode,笔记)