| 问题描述 |
|---|
给定两个字符串 $$S$$ 和 $$T$$,判断 $$T$$ 是否是 $$S$$ 的循环同构串。 设 $$|S| = n$$。将 $$S$$ 的字符循环左移 $$k$$ 位($$0 \le k < n$$)得到的字符串,称为 $$S$$ 的一个循环同构串。 形式化地说,若存在 $$k$$ 使得 $$T = S[k\dots n-1] + S[0\dots k-1]$$,则称 $$T$$ 是 $$S$$ 的循环同构。 |
| 输入描述 |
第一行一个整数 $$Q$$,表示询问次数。($$Q \le 10^5$$) 接下来 $$Q$$ 行,每行两个字符串 $$S$$ 和 $$T$$,以空格分隔。($$\sum |S| \le 10^6$$,$$|S| = |T| \ge 2$$) 字符串仅包含小写英文字母 |
| 输出描述 |
对于每个询问,若 $$T$$ 是 $$S$$ 的循环同构,输出一行 "YES",否则输出 "NO"。 |
| 样例输入复制样例 |
4 abcde cdeab abc abc aaaa aaaa hello world |
| 样例输出 |
YES YES YES NO |
| 提示说明 |
"abcde" 左移 3 位 → "cdeab",YES "abc" 左移 0 位 → "abc",YES "aaaa" 左移 0 位 → "aaaa",YES "hello" 无论怎么旋转都无法得到 "world",NO |
| 相关 |