Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
17
Task/Rep-string/EchoLisp/rep-string-1.l
Normal file
17
Task/Rep-string/EchoLisp/rep-string-1.l
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
(lib 'list) ;; list-rotate
|
||||
|
||||
;; a list is a rep-list if equal? to itself after a rotation of lam units
|
||||
;; lam <= list length / 2
|
||||
;; truncate to a multiple of lam before rotating
|
||||
;; try cycles in decreasing lam order (longest wins)
|
||||
|
||||
(define (cyclic? cyclic)
|
||||
(define len (length cyclic))
|
||||
(define trunc null)
|
||||
|
||||
(if (> len 1)
|
||||
(for ((lam (in-range (quotient len 2) 0 -1)))
|
||||
(set! trunc (take cyclic (- len (modulo len lam))))
|
||||
#:break (equal? trunc (list-rotate trunc lam)) => (list->string (take cyclic lam))
|
||||
'no-rep )
|
||||
'too-short-no-rep))
|
||||
20
Task/Rep-string/EchoLisp/rep-string-2.l
Normal file
20
Task/Rep-string/EchoLisp/rep-string-2.l
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
(define strings '["1001110011" "1110111011" "0010010010" "1010101010"
|
||||
"1111111111" "0100101101" "0100100" "101" "11" "00" "1"])
|
||||
|
||||
(define (task strings)
|
||||
(for-each (lambda (s)
|
||||
(writeln s (cyclic? (string->list s)))) strings))
|
||||
|
||||
(task strings)
|
||||
|
||||
"1001110011" "10011"
|
||||
"1110111011" "1110"
|
||||
"0010010010" "001"
|
||||
"1010101010" "1010"
|
||||
"1111111111" "11111"
|
||||
"0100101101" no-rep
|
||||
"0100100" "010"
|
||||
"101" no-rep
|
||||
"11" "1"
|
||||
"00" "0"
|
||||
"1" too-short-no-rep
|
||||
Loading…
Add table
Add a link
Reference in a new issue