码迷,mamicode.com
首页 > 其他好文 > 详细

71. Simplify Path

时间:2017-07-11 11:15:05      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:tip   ref   turn   amp   obj   where   rip   using   www   

https://leetcode.com/problems/simplify-path/#/description

 

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".

 

 

 

Sol :

 

In Unix, ‘..‘ means parent directory; ‘.‘ means current directory. 

 

Split the path using slash / and check the items. Append addresses and pop parent addresses.

 

 

class Solution(object):
    def simplifyPath(self, path):
        """
        :type path: str
        :rtype: str
        """
        stack = []
        for item in path.split("/"):
            if item not in [".", "..", ""]:
                stack.append(item)
            if item == ".." and stack:
                stack.pop()
        return "/" + "/".join(stack)

 

 

 Note:
 
1 string/list.split
 
 
 
ex. 
 
string = "www.gziscas.com.cn"

print(string.split(‘.‘))

[‘www‘, ‘gziscas‘, ‘com‘, ‘cn‘]

 

 

2 pop()

 

ex.

aList = [123, ‘xyz‘, ‘zara‘, ‘abc‘];

print "A List : ", aList.pop();
print "B List : ", aList.pop(2);

 

==>

A List :  abc
B List :  zara

71. Simplify Path

标签:tip   ref   turn   amp   obj   where   rip   using   www   

原文地址:http://www.cnblogs.com/prmlab/p/7149356.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!