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)