欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1278A.Shuffle Hashing
Shuffle Hashing
题目描述
Polycrap正在建立他自己的网页服务。作为一个很现代的网站其包含登入的功能。当然,这总会涉及到密码的安全问题。
Polycarp决定要储存密码的哈希值。密码的哈希值由以下这个算法来生成:
1.把只包含小写拉丁字母的密码进行随机打乱,记为(可能和相等);
2.生成两个随机的只包含小写拉丁字母的字符串和(这两个串中的任何一个可能为空串);
3.哈希算法的结果,此处的是指把前后两个字符串首尾相接。
举个例子,,则可能为。随机生成两个字符串。那么。
需要注意的是,从变换道的过程中,不会添加或者删除任何字母,只会改变字母的顺序。
现在Polycarp想让你帮他编写密码哈希的校验模块。给出密码和生成的哈希,你需要检查是否是的一个哈希结果。
输入格式
第一行包含了一个正整数——查询的次数。
每一次查询的第一行包含了一个由小写拉丁字母组成的非空字符串。的长度不超过。
每一次查询的第二行包含了一个由小写拉丁字母组成的非空字符串。的长度不超过。
输出格式
对于每一次查询,如果是的一个哈希结果,就输出"YES",反之输出"NO"。
说明/提示
第一组查询的解释已经在题干中给出。
第二组查询中和均是空串,是的一种打乱。
第三组查询中哈希不能通过密码生成。
第四组查询中,是空串,是的一种打乱(虽然打乱并没有效果)。
第五组查询中哈希不能通过密码生成。
样例
5
abacaba
zyxaabcaabkjh
onetwothree
threetwoone
one
zzonneyy
one
none
twenty
ten
YES
YES
NO
YES
NO
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |