Details って意味がわかんないんだけど、CodeEval のこれ。
Scheme でやってみた。
(define dots (lambda (lis) (let loop ((l lis) (d 0)) (cond ((char=? (car l) #\Y) d) ((char=? (car l) #\.) (loop (cdr l) (+ d 1))) (else (loop (cdr l) 0)))))) (define solv (lambda (str) (apply min (map dots (map string->list (string-split str ",")))))) (define print-solv (lambda (str) (print (solv str)))) (define main (lambda (args) (with-input-from-file (cadr args) (lambda () (port-for-each print-solv read-line)))))
基本的には CodeEval に提出した Python 版と同じ。
takatoh@nightschool $ cat input.txt XX.YY,XXX.Y,X..YY,XX..Y XXX.YYYY,X...Y..Y,XX..YYYY,X.....YY,XX....YY XX...YY,X....YY,XX..YYY,X..YYYY XXYY,X..Y,XX.Y takatoh@nightschool $ gosh details.scm input.txt 1 1 2 0
たぶんあってる。