LeetCode开心刷题四十八天——71. Simplify Path
71.?Simplify Path
Medium
Given an?absolute path?for a file (Unix-style),simplify it. Or in other words,convert it to the?canonical path. In a UNIX-style file system,a period? Note that the returned canonical path must always begin?with a slash? ? Example 1: Input: "/home/"
Output: "/home" Explanation: Note that there is no trailing slash after the last directory name.
Example 2: Input: "/../"
Output: "/" Explanation: Going one level up from the root directory is a no-op,as the root level is the highest level you can go.
Example 3: Input: "/home//foo/"
Output: "/home/foo" Explanation: In the canonical path,multiple consecutive slashes are replaced by a single one.
Example 4: Input: "/a/./b/../../c/"
Output: "/c"
Example 5: Input: "/a/../../b/../c//.//"
Output: "/c"
Example 6: Input: "/a//b////c/d//././/.."
Output: "/a/b/c"
class Solution(object): def simplifyPath(self,path): """ :type path: str :rtype: str """ # define stack stack=list() # split string path=[p for p in path.split(‘/‘) if p] for p in path: if p == ‘.‘: continue elif p == ‘..‘: if stack: stack.pop() else: stack.append(p) return ‘/‘+‘/‘.join(stack) Solu=Solution() path="/a/./b/../../c/" print(Solu.simplifyPath(path)) BONUS: 1.有可能会出现多个/的情况,直接用split划分,会导致出现空字符串,解决方法是,加上判断语句。在循环过程直接加到stack里 2. Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。 语法join()方法语法: str.join(sequence)
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |