【LeetCode with Python】 Simplify Path
2014-09-21 17:49
381 查看
博客域名:http://www.xnerv.wang
原题页面:https://oj.leetcode.com/problems/simplify-path/
题目类型:
难度评价:★
本文地址:/article/1377468.html
Given an absolute path for a file (Unix-style), simplify it.
For example,
path =
path =
click to show corner cases.
Corner Cases:
Did you consider the case where path =
In this case, you should return
Another corner case is the path might contain multiple slashes
In this case, you should ignore redundant slashes and return
原题页面:https://oj.leetcode.com/problems/simplify-path/
题目类型:
难度评价:★
本文地址:/article/1377468.html
Given an absolute path for a file (Unix-style), simplify it.
For example,
path =
"/home/", =>
"/home"
path =
"/a/./b/../../c/", =>
"/c"
click to show corner cases.
Corner Cases:
Did you consider the case where path =
"/../"?
In this case, you should return
"/".
Another corner case is the path might contain multiple slashes
'/'together, such as
"/home//foo/".
In this case, you should ignore redundant slashes and return
"/home/foo".
class Solution: # @param path, a string # @return a string def simplifyPath(self, path): stack = [ ] toks = path.split("/") stack.append(toks[0]) toks = toks[1:] for tok in toks: if tok in ("", "."): continue elif ".." == tok: if len(stack) > 0 and "" != stack[len(stack) - 1]: # root / should not be poped to distinguish abs path and rel path stack.pop() #else: # return "" # /home/../../.. else: stack.append(tok) len_stack = len(stack) if len_stack >1: return "/".join(stack) if "" == stack[0] else "/" + "/".join(stack) elif (1 == len_stack and "" == stack[0]) or 0 == len_stack: return "/"
相关文章推荐
- 【LeetCode with Python】 Swap Nodes in Pairs
- 【LeetCode with Python】 Single Number
- 【LeetCode with Python】 Best Time to Buy and Sell Stock II
- 【LeetCode with Python】 Best Time to Buy and Sell Stock
- 【LeetCode with Python】 Regular Expression Matching
- 【LeetCode with Python】 Decode Ways
- 【LeetCode with Python】 LRU Cache
- 【LeetCode with Python】 Binary Tree Preorder Traversal
- 【LeetCode with Python】 Insertion Sort List
- 【LeetCode with Python】 Generate Parentheses
- 【LeetCode with Python】 Same Tree
- 【LeetCode with Python】 Pow(x, n)
- 【LeetCode with Python】 Remove Duplicates from Sorted Array
- 【LeetCode with Python】 Binary Tree Inorder Traversal
- 【LeetCode with Python】 Maximum Subarray
- 【LeetCode with Python】 String to Integer (atoi)
- 【LeetCode with Python】 Remove Duplicates from Sorted List
- 【LeetCode with Python】 Merge Two Sorted Lists
- 【LeetCode with Python】 Maximum Depth of Binary Tree
- 【LeetCode with Python】 Remove Element