zoukankan      html  css  js  c++  java
  • 71. Simplify Path

    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
  • 相关阅读:
    仪仗队
    疫情控制
    Code
    距离咨询
    舒适的路线
    桐桐的糖果计划
    跑路
    最短路计数
    骑马修栅栏
    搭桥
  • 原文地址:https://www.cnblogs.com/prmlab/p/7149356.html
Copyright © 2011-2022 走看看