美文网首页我爱编程
每周一道算法题(五十四)

每周一道算法题(五十四)

作者: CrazySteven | 来源:发表于2018-05-27 21:28 被阅读63次

以后什么难度都用'Python'写了,要不感觉Python都没机会用,本周题目难度级别'Medium'

题目:给你一个路径,要求你返回一个优化后的路径。eg: "/a/./b/../../c/", => "/c"

思路:其实一开始题目理解的有点问题,这题就一个原则,遇到..就回到上一级,.就是当前目录下,还记得cd ..么,一样的。知道了这个原则再来就很容易了,直接看我的代码吧:

class Solution:
    def simplifyPath(self, path):
        """
        :type path: str
        :rtype: str
        """
        # 有的小伙伴是定义[]为容器
        result = ''
        # 遍历
        for i in path.split('/'):
            # 不是这三个就把目录加进去
            if i != '.' and i != '..' and i != '':
                result = result + '/' + i
            elif i == '..': 
                # 遇到..就退到上一个目录
                result = result.rstrip(result.split('/')[-1])
                result = result.rstrip('/')
        # 如果是空目录就返回'/'
        if result == '': return '/'
        return result

效率也不错,不过比result为[]的效率低一些,如果定义成[]则需要再次遍历,或进行格式转换。

版权声明:本文为 Crazy Steven 原创出品,欢迎转载,转载时请注明出处!

相关文章

  • 每周一道算法题(五十四)

    以后什么难度都用'Python'写了,要不感觉Python都没机会用,本周题目难度级别'Medium' 题目:给你...

  • ARTS第三周(2018-12-16)

    1.Algorithm:每周至少做一个 leetcode 的算法题 第一道算法题:https://leetcode...

  • ARTS(09)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(05)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(07)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(10)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(02)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(03)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(08)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(06)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

网友评论

    本文标题:每周一道算法题(五十四)

    本文链接:https://www.haomeiwen.com/subject/ptuijftx.html