23 lines
1.3 KiB
Plaintext
23 lines
1.3 KiB
Plaintext
Given a series of ones and zeroes in a string, define a repeated string or ''rep-string'' as a string which is created by repeating a substring of the ''first'' N characters of the string ''truncated on the right to the length of the input string, and in which the substring appears repeated at least twice in the original''.
|
|
|
|
For example, the string <code>'10011001100'</code> is a rep-string as the leftmost four characters of <code>'1001'</code> are repeated three times and truncated on the right to give the original string.
|
|
|
|
Note that the requirement for having the repeat occur two or more times means that the repeating unit is ''never'' longer than half the length of the input string.
|
|
|
|
The task is to:
|
|
* Write a function/subroutine/method/... that takes a string and returns an indication of if it is a rep-string and the repeated string. (Either the string that is repeated, or the number of repeated characters would suffice).
|
|
* There may be multiple sub-strings that make a string a rep-string - in that case an indication of all, or the longest, or the shortest would suffice.
|
|
* Use the function to indicate the repeating substring if any, in the following:
|
|
<dl><dd><pre>'1001110011'
|
|
'1110111011'
|
|
'0010010010'
|
|
'1010101010'
|
|
'1111111111'
|
|
'0100101101'
|
|
'0100100'
|
|
'101'
|
|
'11'
|
|
'00'
|
|
'1'</pre></dl>
|
|
* Show your output on this page.
|