#2878. 加密算法 (encrypt)

    ID: 2878 传统题 文件IO:encrypt 2000ms 256MiB 尝试: 83 已通过: 16 难度: 7 上传者: 标签>模拟基础语法文件重定向普及组二阶下测试题T2

加密算法 (encrypt)

说明

本题需要使用文件重定向,输入文件名为encrypt.in,输出文件名为encrypt.out

题目描述

信息在传递之前需要经过一些加密算法才能由信道进行传递。小程设计了一套新的加密算法,该算法如下:

设原字符串为 p,该算法会首先将 p 中的字符随机打乱,比如 abcdef 可以打乱成 cdfabe 等。之后会随机生成两个字符串 s1, s2(可以为空),再将 s1 拼接到 p 的前面, s2 拼接到 p 的后面。形成的新的字符串 s′ 就是加密后的字符串。

小程设计出来算法之后需要写一个验证程序,即给定 s 和 s′,判断 s′ 是否可以由 s 加密而来。

输入格式

第一行输入一个正整数 TT,表示有 TT 组数据。

对于每一组数据,第一行一个字符串 ss;第二行一个字符串 ss'。字符串仅由小写字母组成。

输出格式

对于每一组数据,如果 ss' 可以由 ss 加密而来,输出 YES;否则输出 NO

样例

5
yesno
yyseno
pop
opppipi
abcd
gfbadcfgg
faq
qaaf
abc
abc
YES
YES
YES
NO
YES

样例解释

第一组样例,s1s_1 = y,s2s_2 为空;

第二组样例,s1s_1 为空,s2s_2 = pipi

第三组样例,s1s_1 = gf, s2s_2 = fgg

第四组样例,s1,s2s_1, s_2 都为空。

数据范围

  • 对于 30% 的数据,1ss101\le |s| \le |s'| \le 10
  • 对于 60% 的数据,1ss1001\le |s| \le |s'| \le 100
  • 对于 100% 的数据,1ss1000,1T201\le |s| \le |s'| \le 1000, 1\le T \le 20

来源

by Vingying