fork download
  1. (defun make-circular-list (list)
  2. (setf list (nconc list list)))
  3.  
  4. (defun odai-pt11-117 (subseq seq)
  5. (loop for x in (make-circular-list (coerce subseq 'list))
  6. for pos = (position x seq)
  7. then (position x seq :start (1+ pos))
  8. while pos
  9. sum 1 into n
  10. finally (return (floor n (length subseq)))))
  11.  
  12. (dolist (s '("odaiodai"
  13. "ooddaai"
  14. "idao"
  15. "ododoadioadioadioadioadioadiodaioadodioadiaodi"))
  16. (format t "~A -> ~D~%" s (odai-pt11-117 "odai" s)))
  17.  
Success #stdin #stdout 0.02s 25332KB
stdin
Standard input is empty
stdout
odaiodai -> 2
ooddaai -> 1
idao -> 0
ododoadioadioadioadioadioadiodaioadodioadiaodi -> 5