26 lines
592 B
Scheme
26 lines
592 B
Scheme
(define (balanced-brackets string)
|
|
(define (b chars sum)
|
|
(cond ((< sum 0)
|
|
#f)
|
|
((and (null? chars) (= 0 sum))
|
|
#t)
|
|
((null? chars)
|
|
#f)
|
|
((char=? #\[ (car chars))
|
|
(b (cdr chars) (+ sum 1)))
|
|
((char=? #\] (car chars))
|
|
(b (cdr chars) (- sum 1)))
|
|
(else
|
|
(#f)))
|
|
(b (string->list string) 0))
|
|
|
|
(balanced-brackets "")
|
|
|
|
(balanced-brackets "[]")
|
|
(balanced-brackets "[][]")
|
|
(balanced-brackets "[[][]]")
|
|
|
|
(balanced-brackets "][")
|
|
(balanced-brackets "][][")
|
|
(balanced-brackets "[]][[]")
|