博客
关于我
hdu1880——哈希+恶心输入输出
阅读量:646 次
发布时间:2019-03-15

本文共 1522 字,大约阅读时间需要 5 分钟。

在魔法学校的学习中,哈利波特需要掌握各种魔咒来对抗敌人。在这个问题中,我们需要编写一个程序来存储与功能相关的魔咒词典,并能够快速查询。

步骤说明

  • 读取词典:首先,我们需要读取词典中的魔咒及其对应的功能,建立映射。
  • 构建哈希表:使用字典存储魔法咒语到功能的映射,另一个字典存储功能到魔法咒语的映射。
  • 处理输入:读取每个测试用例,查询相应的功能或魔法咒。
  • 查找和输出:根据查询项在词典中查找,返回对应的结果或标记不存在。
  • 伪代码示例

    import sysfrom collections import defaultdictdef main():    # 读取词典,构建两个字典    magic_dict = {}  # magic -> functionality    functionality_dict = {}  # functionality -> magic    for line in sys.stdin:        line = line.strip()        if line == '@END@':            break        # 处理每一行,假设格式为“[magic]对应功能”        # 注意,在样例中,每行的格式可能有空格,如“[expelliarmus] the disarming charm”        # 因此,需要提取前部分到magic,后部分到function        # 这里可能有多个空格,split()会自动分隔        # 否则,可能会出现前缀或后缀的空格问题        parts = line.split()        if len(parts) < 2:            # 假设有些行可能不完整,但根据题目,格式正确,这里应该不会出现            continue        magic = parts[0][1:-1]  # 去掉[]号,获取魔咒名称        function = ' '.join(parts[1:])  # 处理对应功能部分        magic_dict[magic] = function        functionality_dict[function] = magic        # 读取N和接下来的测试用例    n = int(sys.stdin.readline())    for _ in range(n):        query = sys.stdin.readline().strip()        # 处理两种情况:要么是魔咒,要么是功能        if query in magic_dict:            print(magic_dict[query])        elif query in functionality_dict:            print(functionality_dict[query])        else:            print("what?")if __name__ == "__main__":    main()

    解释

  • 读取词典部分:程序读取每一行,分割处理后提取魔咒名称和对应的功能,更新双向字典。
  • 处理测试用例:对于每个查询项,检查是否存在于魔法咒字典或功能字典中,分别输出结果。
  • 去除空格和错误处理:在处理单词时,使用strip()去除前后空格,确保正确匹配。
  • 这个程序能够高效地处理输入数据,并根据需要查询词典中的信息,确保在关键时刻快速响应。

    转载地址:http://psfmz.baihongyu.com/

    你可能感兴趣的文章
    git远程仓库切换
    查看>>
    带照片捕捉功能的ESP32-CAM PIR运动检测器
    查看>>
    如何使用SSH远程管理Linux服务器
    查看>>
    降级到旧版本macOS的3种方法
    查看>>
    学习Vue.js2.0(国外视频教程)
    查看>>
    wxPython和PyOpenGL视频
    查看>>
    在30分钟内学习PHP
    查看>>
    Python http.server 服务器
    查看>>
    Python svm 支持向量机
    查看>>
    OpenStack 最小化安装配置(一):物理机网桥配置
    查看>>
    PS快速美白照片
    查看>>
    ubuntu 16.04 镜像下载
    查看>>
    CUDA9.1、cuDNN7在Ubuntu16.04上的安装
    查看>>
    解决“预编译器错误:代码使用了scss/sass语言,但未安装相应编译器,请在菜单工具-插件安装里安装相应编译插件”
    查看>>
    微信小程序云开发:怎么删除云函数?已解决
    查看>>
    解决微信小程序项目导入的问题:app.json 未找到、 __wxConfig is not defined
    查看>>
    非迅捷|PDF、Word、PPT、Excel、图片等互相在线转换:免费、简单、快速、零错误、无套路
    查看>>
    第一次被黑
    查看>>
    PyCharm配置anaconda环境
    查看>>
    修改linux 系统自带日志系统systemd-journald && 参数
    查看>>