← 返回题库
初级

用bisect实现哈希环查找

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve(nodes, key):
    import bisect
    import hashlib
    nodes = nodes.split(',') if isinstance(nodes, str) else nodes
    node_hashes = sorted([(hashlib.sha256(n.encode()).hexdigest(), n) for n in nodes])
    key_hash = hashlib.sha256(key.encode()).hexdigest()
    hashes = [h for h, n in node_hashes]
    idx = bisect.bisect_left(hashes, key_hash)
    if idx >= len(hashes):
        idx = 0
    print(node_hashes[idx][1])

示例

输入
solve('node1,node2,node3', 'key1')
期望输出
node1
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码