Problem J
Periodic Strings
Define a $k$-periodic string as follows:
A string $s$ is $k$-periodic if the length of the string $|s|$ is a multiple of $k$, and if you chop the string up into $|s|/k$ substrings of length $k$, then each of those substrings (except the first) is the same as the previous substring, but with its last character moved to the front.
For example, the following string is $3$-periodic:
The above string can break up into substrings abc, cab, bca, and abc, and each substring (except the first) is a right-rotation of the previous substring (abc -> cab -> bca -> abc)
Given a string, determine the smallest k for which the string is k-periodic.
Input
Each input will consist of a single test case. Note that your program may be run multiple times on different inputs. The single line of input contains a string $s$ ($1 \le |s| \le 100$) consisting only of lowercase letters.
Output
Output the integer $k$, which is the smallest $k$ for which the input string is $k$-periodic.
Sample Input 1 | Sample Output 1 |
---|---|
aaaaaaaa |
1 |
Sample Input 2 | Sample Output 2 |
---|---|
abbaabbaabba |
2 |
Sample Input 3 | Sample Output 3 |
---|---|
abcdef |
6 |
Sample Input 4 | Sample Output 4 |
---|---|
abccabbcaabc |
3 |