Python程式:查詢解析後的Unix風格路徑
假設我們有一個Unix路徑,在一個字串列表中,我們需要找到它的解析版本。眾所周知,在Unix中,“..”表示上級目錄,“.”表示停留在當前目錄。這裡的解析表示對這兩個符號的評估,以便我們得到當前所在的最終目錄。
所以,如果輸入類似於path = ["usr", "..", "usr", ".", "local", "etc", "foo"],那麼輸出將是['usr', 'local', 'etc', 'foo'],因為該部分表示“/usr/../usr/./local/etc”,解析為“/usr/local/etc/foo”
為了解決這個問題,我們將遵循以下步驟:
- s := 一個新列表
- 對於path中的每個元素i,執行以下操作:
- 如果i與'..'相同,則
- 如果s不為空,則
- 從s中刪除最後一個元素
- 如果s不為空,則
- 否則,當i與'.'不同時,則
- 在s的末尾插入i
- 如果i與'..'相同,則
- 返回s
讓我們看看下面的實現,以便更好地理解:
示例
class Solution: def solve(self, path): s = [] for i in path: if i == '..': if len(s) >0: s.pop() elif i !='.': s.append(i) return s ob = Solution() print(ob.solve(["usr", "..", "usr", ".", "local", "etc", "foo"]))
輸入
["usr", "..", "usr", ".", "local", "etc", "foo"]
輸出
['usr', 'local', 'etc', 'foo']
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP