Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình tìm đường dẫn Unix chuẩn hóa trong Python


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ử i trong path:
    • Nếu i == '..' và s không rỗng, xóa phần tử cuối của s.
    • Ngược lại nếu i != '.', thêm i vào cuối s.
  • 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']