CCF-201604-3-路徑解析
阿新 • • 發佈:2018-12-01
這題一開始我是看不懂的,不過慢慢看懂後,發現原來很簡單。題目叫我們正規化每個路徑。其實就是模擬路徑的走向,最後生成絕對路徑。題目輸入的當前目錄其實對相對路徑才有用。
具體思路
- 當前目錄按 ‘/’ 斜杆分割成列表。判斷輸入的路徑是不是絕對路徑,是絕對路徑就得當前目錄改為根目錄。(具體就是把當前目錄清空)
- 把輸入的路徑按 ‘/’ 斜杆分割成列表,從左到右遍歷這個列表。
1)遇到是空字元和‘.’就忽略(這就可以解決重複分號和單點的情況)
2)遇到兩個點,就返回上一級,具體到操作就是刪除當前目錄的最後一個元素
3)遇到正常字串(目錄或檔案)就在當前目錄後面加上這個元素
細節:
輸入空路徑,列印當前目錄
python程式碼
p = int(input()) curPath = input().split('/') for i in range(p): curPt_cp = curPath[:] s, path = input(), [] if s: path = s.split('/') if path and not path[0]: curPt_cp = [''] for e in path: if e and e != '.' and e != '..': curPt_cp.append(e) elif e == '..' and curPt_cp[len(curPt_cp) - 1]: curPt_cp.pop(len(curPt_cp) - 1) print('/') if len(curPt_cp) == 1 else print('/'.join(curPt_cp))