Leetcode 71. Simplify Path

Problem

Given an absolute path for a file (Unix-style), simplify it. Or in other words, convert it to the canonical path.

Algorithm

Simulation, record the depth of each name. If there is a “…” move to above. If there is a “.” ignore it.

Code

class Solution:
    def simplifyPath(self, path: str) -> str:
        index = []
        path += '/'
        sLen = len(path)
        for i in range(sLen):
            if path[i] == '/':
                index.append(i)
        
        deep = 0
        name = []
        for i in range(len(index)-1):
            start  = index[i]
            finish = index[i+1]
            if finish == start + 1:
                pass
            elif finish == start + 2 and path[start+1] == '.':
                pass
            elif finish == start + 3 and path[start+1] == '.' and path[start+2] == '.':
                if name:
                    name.pop()
            else:
                name.append(path[start+1:finish])
        
        out = ""
        for i in range(len(name)):
            out += "/" + name[i]
        if out == "":
            out = "/"
            
        return out
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值