中级
实现固定窗口限流算法
未完成
中级参考
代码结构已给出,请填写 ____ 处
def solve():
from pyodide.http import open_url
from io import StringIO
request_logs_csv = open_url(____).read()
rate_limit_config_csv = open_url(____).read()
import pandas as pd
from io import StringIO
logs = pd.read_csv(StringIO(____))
cfg = pd.read_csv(StringIO(____))
order_cfg = cfg[cfg['____']=='____'].iloc[____]
max_req = int(____)
window = int(____)
counters = {}
allowed = denied = ____
def fixed_window_check(____):
nonlocal allowed, denied
win_key = (ip, int(____) // window)
counters[win_key] = counters.get(____) + ____
if counters[win_key] <= max_req:
allowed += ____; return True
else:
denied += ____; return False
order_logs = logs[logs['____']=='____'].sort_values(____)
for _, row in order_logs.iterrows():
fixed_window_check(____)
print(____)
top_ips = order_logs.groupby(____).size().sort_values(____).head(____)
print(____)
for ip, cnt in top_ips.items(): print(____)
示例
输入
solve()
期望输出
固定窗口(10req/60s): allowed=15, denied=1 高频IP: 10.0.0.1: 13 requests 10.0.0.2: 2 requests 192.168.1.10: 1 requests
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199