Day 127dequeでレート制限用のスライディングウィンドウ

2026-07-01 JST ・ 難易度: 実用 ・ カテゴリ: 実用アルゴリズム

Pythonコード

1from collections import deque2 3def rate_limiter(max_requests, time_window):4    queue = deque()5    while True:6        request_time = input("リクエスト時間を入力してください (秒): ")7        try:8            request_time = int(request_time)9        except ValueError:10            print("無効な入力です。整数を入力してください。")11            continue12        queue.append(request_time)13        while queue and queue[0] < request_time - time_window:14            queue.popleft()15        if len(queue) > max_requests:16            print("レート制限に達しました。")17        else:18            print("リクエストを受け付けました。")19 20rate_limiter(5, 60)

解説

次に試してみよう