文章目录

  • 题意
    • Input
    • Output
    • 输入样例
    • 输出样例
    • 提示
  • 分析
  • 总结
  • 代码

题意

ZJM 为了准备霍格沃兹的期末考试,决心背魔咒词典,一举拿下咒语翻译题
题库格式:[魔咒] 对应功能
背完题库后,ZJM 开始刷题,现共有 N 道题,每道题给出一个字符串,可能是 [魔咒],也可能是对应功能
ZJM 需要识别这个题目给出的是 [魔咒] 还是对应功能,并写出转换的结果,如果在魔咒词典里找不到,输出 “what?”

Input

首先列出魔咒词典中不超过100000条不同的咒语,每条格式为:

[魔咒] 对应功能

其中“魔咒”和“对应功能”分别为长度不超过20和80的字符串,字符串中保证不包含字符“[”和“]”,且“]”和后面的字符串之间有且仅有一个空格。魔咒词典最后一行以“@END@”结束,这一行不属于词典中的词条。
词典之后的一行包含正整数N(<=1000),随后是N个测试用例。每个测试用例占一行,或者给出“[魔咒]”,或者给出“对应功能”。

Output

每个测试用例的输出占一行,输出魔咒对应的功能,或者功能对应的魔咒。如果在词典中查不到,就输出“what?”

输入样例

[expelliarmus] the disarming charm
[rictusempra] send a jet of silver light to hit the enemy
[tarantallegra] control the movement of one’s legs
[serpensortia] shoot a snake out of the end of one’s wand
[lumos] light the wand
[obliviate] the memory charm
[expecto patronum] send a Patronus to the dementors
[accio] the summoning charm
@END@
4
[lumos]
the summoning charm
[arha]
take me to the sky

输出样例

light the wand
accio
what?
what?

提示


分析

这是一道利用字符串哈希解决的经典问题。


  • 字符串哈希

1. 什么是字符串哈希?

字符串哈希指的就是将一个字符串转换为一个值进行处理的方法。

公式如下:

一个长度为n的字符串,

hash =(字符1值 * seed^n + 字符2值 * seed^(n-1) ... + 字符n值 * seed^1)% mod

  • 字符值可以有多种规定方式:

    1)如都是由大写字母或小写字母组成的字符串,则可以用字母顺序来作为值。如a = 1,b = 2…
    2)如除字母外包含其他多种字符,可以用ascii码作为值。

  • seed取值
    seed常见的取值为7、17、131

  • 取余处理
    取余处理是为了保证不会溢出造成结果错误。
    1)mod取1e9+7
    2)不需要mod,而是将数据类型换做unsigned long long,利用该数据类型的自然溢出处理取余。

2. 多种情况的字符串哈希计算

除去给出一个字符串求哈希值以外,我们还有可能遇到将两个字符串合并或者原字符串中某些字符发生变动的情况。而在这两种情况下,同样可以求出新字符串的哈希值。

  • 字符串中某些字符发生变动

一个易懂的小

[week15] ZJM 与霍格沃兹 —— 字符串哈希相关推荐

  1. week-15(ZJM 与霍格沃兹)

    A - ZJM 与霍格沃兹(必做)(hdu1305) 问题描述 ZJM 为了准备霍格沃兹的期末考试,决心背魔咒词典,一举拿下咒语翻译题 题库格式:[魔咒] 对应功能 背完题库后,ZJM 开始刷题,现共 ...

  2. ZJM 与霍格沃兹(字符串哈希)

    问题描述 ZJM 为了准备霍格沃兹的期末考试,决心背魔咒词典,一举拿下咒语翻译题 题库格式:[魔咒] 对应功能 背完题库后,ZJM 开始刷题,现共有 N 道题,每道题给出一个字符串,可能是 [魔咒], ...

  3. week15作业A ZJM 与霍格沃兹

    ZJM 为了准备霍格沃兹的期末考试,决心背魔咒词典,一举拿下咒语翻译题 题库格式:[魔咒] 对应功能 背完题库后,ZJM 开始刷题,现共有 N 道题,每道题给出一个字符串,可能是 [魔咒],也可能是对 ...

  4. 程序设计思维与实践 Week15 作业A - ZJM 与霍格沃兹

    题意: ZJM 为了准备霍格沃兹的期末考试,决心背魔咒词典,一举拿下咒语翻译题 题库格式:[魔咒] 对应功能 背完题库后,ZJM 开始刷题,现共有 N 道题,每道题给出一个字符串,可能是 [魔咒],也 ...

  5. Week15 作业 A - ZJM 与霍格沃兹 HDU - 1880

    题目 ZJM 为了准备霍格沃兹的期末考试,决心背魔咒词典,一举拿下咒语翻译题 题库格式:[魔咒] 对应功能 背完题库后,ZJM 开始刷题,现共有 N 道题,每道题给出一个字符串,可能是 [魔咒],也可 ...

  6. 【Week 15 作业A】ZJM 与霍格沃兹

    题目描述 ZJM 为了准备霍格沃兹的期末考试,决心背魔咒词典,一举拿下咒语翻译题 题库格式:[魔咒] 对应功能 背完题库后,ZJM 开始刷题,现共有 N 道题,每道题给出一个字符串,可能是 [魔咒], ...

  7. Week15 作业A - ZJM 与霍格沃兹

    题目描述 给出一系列二元组:[原字符串] 翻译字符串: 进行若干次查询,给出原字符串或翻译字符串,输出对应的翻译字符串或原字符串. 输入 首先给出若干行,每行一个二元组:[原字符串] 翻译字符串: 最 ...

  8. 程序设计思维与实践 Week15 作业 A-ZJM与霍格沃兹

    题目链接:A-ZJM与霍格沃兹 题目描述: ZJM 为了准备霍格沃兹的期末考试,决心背魔咒词典,一举拿下咒语翻译题 题库格式:[魔咒] 对应功能 背完题库后,ZJM 开始刷题,现共有 N 道题,每道题 ...

  9. 霍格沃兹测试开发学社技术学习笔记之——Python基础笔记

    # 阶段十一-Python语言和测试框架(1) ## 1.pycharm环境变量配置和安装 ## 2.基础数据类型 数字 字符串 ## 3.运算符 字符串算数运算符 比较运算符 赋值运算符 逻辑运算符 ...

  10. 霍格沃兹测试开发学社技术学习笔记之pytest的使用

    1. 简介 pytest是一个成熟的全功能python测试框架 测试用例的skip和xfail,自动失败重试等处理 能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium ...

最新文章

  1. 面试准备3——相关知识
  2. string.length_C.中的String.Length属性示例
  3. 字符串处理 —— 模拟与暴力
  4. 我的内核学习笔记5:proc目录文件创建及读写
  5. 【Antlr】Antlr 孤岛语法:处理相同文件中的不同格式
  6. 交换机端口mtu值最大_交换机 MTU
  7. 如何在 JavaScript 面试中过五关斩六将?
  8. HD 2177(威佐夫博弈 入门)
  9. R语言进行的变量相关性显著性检验
  10. lotus notes 闪退_win7系统Lotus Notes邮箱闪退的解决方法
  11. 随机产生长度不少于6位密码
  12. 071.魔王语言翻译
  13. 启动MySQL报错:ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
  14. 【五一创作】使用Scala二次开发Spark3.3.0实现对MySQL的upsert操作
  15. ciscn_2019_qual_virtual
  16. cesiumjs开发实践 (一)
  17. 【解决方案】EasyCVR安消一体化解决方案集成优势资源融合打造全局可视化安消应用
  18. 【新布局】火绒安全企业产品Linux终端、macOS终端开启公测
  19. 北京交通大学计算机技术导师目录,2017年北京交通大学计算机与信息技术学院925数据结构考研导师圈点必考题汇编...
  20. 测试点等同于测试用例吗

热门文章

  1. 系统没有wmi服务器,系统没有WMI服务怎么办.WMI错误修复方法
  2. Isilon旧机器重新初始化
  3. 四季芬芳,花开不只在春天
  4. 如何压缩word文档
  5. 墨天轮“高可用架构”干货文档分享(含Oracle、MySQL、PG资料124篇)
  6. 中国月度、年度NDVI/植被覆盖空间分布数据分享(1986-2021)
  7. 清空分区linux,Linux使用fdisk删除分区详解
  8. ir2104作用,ir2104引脚功能和IR2103 请问有没有人可以通俗地讲解IR2104芯片引脚的功能?...
  9. 阿里云 OSS图片处理
  10. 论文笔记 Triformer: Triangular, Variable-Specific Attentions for Long SequenceMultivariate Time Series