Rep-string: Difference between revisions

m
(Added PicoLisp)
Line 2,233:
<lang zkl>fcn repString(s){
foreach n in ([s.len()/2+1..1,-1]){
Walker.cycle(s[0,n]:Utils.Helpers.cycle(_).aggregatesink(String).walk(s.len()) :
if (_ == s and n*2<=s.len()) return(n);
}
return(False)
Line 2,241:
<lang zkl>fcn repString(s){
foreach n in ([s.len()/2..0,-1]){
if (s.matches(s[n,*] + "*") and n*2<=s.len()) return(n); }
}
return(False)
}</lang>
<lang zkl>words := ("1001110011 1110111011 0010010010 1010101010 "
"1111111111 0100101101 0100100 101 11 00 1").split(" ");
foreach w in (words){
if (not n:=repStringrepString2(w)) "No repeat in ".println(w);
else [0..*,n].tweak('wrap(z){ if(s:=w[z,n]) s else Void.Stop })
.walk().concat(" ").println();
Anonymous user