Rep-string
var arr = <1001110011 1110111011
0010010010 1010101010
1111111111 0100101101
0100100 101 11 00 1>
Β
for n (arr) {
if (var m = /^(.+)\1+(.*$)(?(?{ substr($1, 0, length $2) eq $2 })|(?!))/.match(n)) {
var i = m[0].len
say (n.substr(0, i),
n.substr(i, i).tr('01', 'ππ'),
n.substr(i*2))
} else {
say "#{n} (no repeat)"
}
}
Output:
10011πππππ
1110ππππ11
001πππ0010
1010ππππ10
11111πππππ
0100101101 (no repeat)
010πππ0
101 (no repeat)
1π
0π
1 (no repeat)
Last updated