fork download
  1. let chars s =
  2. let rec aux acc i =
  3. if i < 0 then acc else aux (s.[i] :: acc) (i - 1)
  4. in aux [] ((String.length s) - 1)
  5. let f s =
  6. let rec aux = function
  7. ([], []) -> 1
  8. | (_, []) -> 0
  9. | ('['::bs, ']'::cs) -> aux (bs, cs)
  10. | (bs, c::cs) -> aux (c::bs, cs)
  11. in aux ([], (chars s))
  12. let g s =
  13. Printf.printf "%d\t%s\n" (f s) s
  14. let () =
  15. g "";
  16. g "[";
  17. g "]";
  18. g "[]";
  19. g "[[]]";
  20. g "[][]";
  21. g "][";
Success #stdin #stdout 0s 5316KB
stdin
Standard input is empty
stdout
1	
0	[
0	]
1	[]
1	[[]]
1	[][]
0	][