linux路径简化

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

  

猜你喜欢

转载自www.cnblogs.com/zjchen/p/11845847.html