linux路径简化

Posted on 2019-11-12 22:27  何处尘归  阅读(247)  评论(0)    收藏  举报
class Solution:
    def simplifyPath(self, path: str) -> str:
        result = ''
        tmp = ''
        for i in path:
            if i == '.':
                if tmp == '/' or tmp == '/.':
                    tmp += i
                else:
                    tmp = ''
            elif i == '/':
                if tmp == '/.':
                    result = result[:-2]
                    tmp = i
                elif tmp == '/..':
                    result = result[:-3]
                    while result and result[-1] != '/':
                        result = result[:-1]
                    else:
                        if not result:
                            result = '/'
                    tmp = i
                    continue
                elif tmp == '/':
                    continue
                else:
                    tmp = i
            else:
                tmp = ''
            result += i
        if result[-1] == '.':
            if result[-2] == '.':
                if result[-3] == '/':
                    result = result[:-3]
                    while result and result[-1] != '/':
                        result = result[:-1]
                    else:
                        if not result:
                            result = '/'
            elif result[-2] == '/':
                result = result[:-1]
        if len(result) > 1 and result[-1] == '/':
            result = result[:-1]
        return result

  

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3