Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
26
Task/Rep-string/Racket/rep-string.rkt
Normal file
26
Task/Rep-string/Racket/rep-string.rkt
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
#lang racket
|
||||
|
||||
(define (rep-string str)
|
||||
(define len (string-length str))
|
||||
(for/or ([n (in-range 1 len)])
|
||||
(and (let loop ([from n])
|
||||
(or (>= from len)
|
||||
(let ([m (min (- len from) n)])
|
||||
(and (equal? (substring str from (+ from m))
|
||||
(substring str 0 m))
|
||||
(loop (+ n from))))))
|
||||
(<= n (quotient len 2))
|
||||
(substring str 0 n))))
|
||||
|
||||
(for ([str '("1001110011"
|
||||
"1110111011"
|
||||
"0010010010"
|
||||
"1010101010"
|
||||
"1111111111"
|
||||
"0100101101"
|
||||
"0100100"
|
||||
"101"
|
||||
"11"
|
||||
"00"
|
||||
"1")])
|
||||
(printf "~a => ~a\n" str (or (rep-string str) "not a rep-string")))
|
||||
Loading…
Add table
Add a link
Reference in a new issue