同构

[题目描述$\varnothing$]

定义两个字符串S1,S2循环同构,当且仅当S1可以通过切下一段前缀放到S1末尾之后可以变成S2.

定义两个字符串S1,S2置换同构,当且仅当S1可以通过经过一次字符集的置换之后可以变成S2.

定义两个字符串S1,S2 “$\varnothing$同构”,当且仅当存在一个字符串S,使得S1与S循环同构,S2与S置换同构.

注意,无论是哪种同构,一个字符串总是与自身同构.

现在有T对字符串需要你判断它们是否 “$\varnothing$同构”,字符串仅包含小写字母.

[输入格式$\varnothing$]

第一行一个正整数T,表示有T对字符串需要你判断它们是否 “$\varnothing$同构”

接下来以每行一个字符串的方式给出T对字符串,保证每对字符串长度相同

[输出格式$\varnothing$]

共T行,每行一个字符串 “YES”或者 “NO”(无双引号)表示这对串是否 “$\varnothing$同构”

//这题我不会做,现开放以讨论

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注