← 返回题库
初级

Hashing

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve(size, nums):
    size = int(size)
    nums = list(map(int, nums.split(',')))
    table = [-1] * size
    for n in nums:
        pos = n % size
        if table[pos] == -1:
            table[pos] = n
        else:
            step = 0
            while step < size:
                new_pos = (pos + step * step) % size
                if table[new_pos] == -1:
                    table[new_pos] = n
                    break
                step += 1
            if step >= size:
                print('-', end=' ')
                continue
        print(pos, end=' ')
    print()

示例

输入
solve(11, '12,23,34')
期望输出
1 1 1
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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