简化路径Python解法
給你一個(gè)字符串 path ,表示指向某一文件或目錄的 Unix 風(fēng)格 絕對(duì)路徑 (以 '/' 開(kāi)頭),請(qǐng)你將其轉(zhuǎn)化為更加簡(jiǎn)潔的規(guī)范路徑。
在 Unix 風(fēng)格的文件系統(tǒng)中,一個(gè)點(diǎn)(.)表示當(dāng)前目錄本身;此外,兩個(gè)點(diǎn) (..)?表示將目錄切換到上一級(jí)(指向父目錄);兩者都可以是復(fù)雜相對(duì)路徑的組成部分。任意多個(gè)連續(xù)的斜杠(即,'//')都被視為單個(gè)斜杠 '/' 。 對(duì)于此問(wèn)題,任何其他格式的點(diǎn)(例如,'...')均被視為文件/目錄名稱。
請(qǐng)注意,返回的 規(guī)范路徑 必須遵循下述格式:
始終以斜杠 '/' 開(kāi)頭。
兩個(gè)目錄名之間必須只有一個(gè)斜杠 '/' 。
最后一個(gè)目錄名(如果存在)不能 以 '/' 結(jié)尾。
此外,路徑僅包含從根目錄到目標(biāo)文件或目錄的路徑上的目錄(即,不含 '.' 或 '..')。
返回簡(jiǎn)化后得到的 規(guī)范路徑 。
來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/simplify-path
?
例:
輸入:path = "/home//foo/" 輸出:"/home/foo" 解釋:在規(guī)范路徑中,多個(gè)連續(xù)斜杠需要用一個(gè)斜杠替換。解析:
用棧存儲(chǔ)有用信息,然后用'/'進(jìn)行分隔即可。
class Solution(object):def simplifyPath(self, path):""":type path: str:rtype: str"""stack = [] # 棧for i in path.split('/'): # 通過(guò)'/'進(jìn)行分割if i not in ['', '.', '..']: 只要重要信息stack.append(i)elif i == '..' and stack: # 跳到上級(jí)目錄*stack.pop() # 彈出return "/" + "/".join(stack) # 按格式輸出 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的简化路径Python解法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 标准ascii码的最高位是什么
- 下一篇: 矩阵置零Python解法