#P1226. 循环节的判定

循环节的判定

题目描述

给定两个字符串 PP 与 SS,保证 PP 的长度不超过 SS 的长度。

请判定 PP 是否是 SS 的循环节。

所谓 PP 是否是 SS 循环节,是指将 PP 重复足够多遍后得到 P∗P^*,然后 SS 是 P∗P^* 的前缀。

举例来说:

  • P=aaP=\text{aa} 是 S=aaaS=\text{aaa} 的循环节,因为 P∗=aa aa⋯P^*=\text{aa aa}\cdots 的前三个字母都是 a。
  • P=abaP=\text{aba} 不是 S=ababS=\text{abab} 的循环节,因为 P∗=aba aba⋯P^*=\text{aba aba}\cdots 的第四个字母不是 b。

输入格式

  • 第一行:一个字符串表示 PP
  • 第二行:一个字符串表示 SS
  • 保证输入的字符串全部由字母或数字组成。

输出格式

  • 如果是循环节,输出 P,否则输出 A。P 是 Periodic 的意思,A 是Aperiodic 的意思。
ab
ababa
P
23
233
A

数据范围

设 PP 的长度为 ∣P∣|P|,SS 的长度为 ∣S∣|S|,则

  • 对于 50%50\% 的数据,1≤∣P∣≤∣S∣≤1,0001\leq |P| \leq |S|\leq 1,000;
  • 对于 100%100\% 的数据,1≤∣P∣≤∣S∣≤1,000,0001\leq |P| \leq |S|\leq 1,000,000;