Cho đường dẫn Unix dưới dạng danh sách chuỗi, tìm phiên bản đã chuẩn hóa. Trong Unix, ".." biểu thị thư mục cha, "." biểu thị thư mục hiện tại. Chuẩn hóa là đánh giá các ký hiệu này để lấy thư mục cuối cùng.
Ví dụ, path = ["usr", "..", "usr", ".", "local", "etc", "foo"], đầu ra ['usr', 'local', 'etc', 'foo'], vì /usr/../usr/./local/etc/foo giải quyết thành /usr/local/etc/foo.
Các bước giải quyết:
s:= danh sách rỗng.- Duyệt từng phần tử
itrongpath:- Nếu
i == '..'vàskhông rỗng, xóa phần tử cuối củas. - Ngược lại nếu
i != '.', thêmivào cuốis.
- Nếu
- Trả về
s.
Ví dụ minh họa
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"]))
Đầu vào
["usr", "..", "usr", ".", "local", "etc", "foo"]
Đầu ra
['usr', 'local', 'etc', 'foo']