Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Python] Custom LRU cache có thống kê hit/miss + decorator chain

    Tự cài lru(capacity) trả về decorator: dùng OrderedDict, đếm hits và misses, expose qua thuộc tính .stats() (trả về tuple (hits, misses, size)). Chain @count_calls ngoài @lru(capacity) cho hàm f(x) = x*x + x. Đọc dòng Q capacity, rồi Q dòng x. Mỗi truy vấn in f(x). Cuối cùng in trên 1 dòng calls hits misses size.

    • Định dạng đầu vào:

      Dòng đầu Q capacity. Q dòng sau mỗi dòng x.

    • Ràng buộc đầu vào:

      Lưu ý: count_calls chain NGOÀI lru, tức wrapper ngoài cùng. .stats() của lru phải truy cập được qua f.__wrapped__.stats() — đề bài quy định: lru gắn .stats lên wrapper của nó, và count_calls gắn .calls cùng phơi bày inner qua thuộc tính .inner. In f.calls f.inner.stats(). 1<=Q<=10^4, 1<=capacity<=100, |x|<=1000.

    • Định dạng đầu ra:

      Q dòng kết quả, sau đó dòng cuối calls hits misses size.

    Ví dụ:

    Đầu vào:

    5 2
    1
    2
    1
    3
    2
    

    Đầu ra:

    2
    6
    2
    12
    6
    5 1 4 2

    Giải thích:

    Kết quả 2 6 2 12 6; calls=5, hits=1 (lần 1 thứ hai), misses=4, size=2.

    Đang tải editor...