30 lines
554 B
Plaintext
30 lines
554 B
Plaintext
FOR x%=1 TO 10
|
|
test$=FNgenerate(RND(10))
|
|
PRINT "Bracket string ";test$;" is ";FNvalid(test$)
|
|
NEXT x%
|
|
END
|
|
:
|
|
DEFFNgenerate(n%)
|
|
LOCAL l%,r%,t%,output$
|
|
WHILE l%<n% AND r%<n%
|
|
CASE RND(2) OF
|
|
WHEN 1:
|
|
l%+=1
|
|
output$+="["
|
|
WHEN 2:
|
|
r%+=1
|
|
output$+="]"
|
|
ENDCASE
|
|
ENDWHILE
|
|
IF l%=n% THEN output$+=STRING$(n%-r%,"]") ELSE output$+=STRING$(n%-l%,"[")
|
|
=output$
|
|
:
|
|
DEFFNvalid(q$)
|
|
LOCAL x%,count%
|
|
IF LEN(q$)=0 THEN ="OK."
|
|
FOR x%=1 TO LEN(q$)
|
|
IF MID$(q$,x%,1)="[" THEN count%+=1 ELSE count%-=1
|
|
IF count%<0 THEN ="not OK."
|
|
NEXT x%
|
|
="OK."
|