Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 24s
One-pass walk tracking current depth and a high-water mark:
let max_depth s =
let d = ref 0 in
let m = ref 0 in
for i = 0 to String.length s - 1 do
if s.[i] = '(' then begin
d := !d + 1;
if !d > !m then m := !d
end
else if s.[i] = ')' then d := !d - 1
done;
!m
Three inputs:
'((1+2)*(3-(4+5)))' 3 (innermost (4+5) at depth 3)
'(((deep)))' 3
'()()()' 1 (no nesting)
sum 7
Tests for-loop char comparison s.[i] = '(' and the high-water-mark
idiom with two refs.
78 baseline programs total.
16 lines
316 B
OCaml
16 lines
316 B
OCaml
let max_depth s =
|
|
let d = ref 0 in
|
|
let m = ref 0 in
|
|
for i = 0 to String.length s - 1 do
|
|
if s.[i] = '(' then begin
|
|
d := !d + 1;
|
|
if !d > !m then m := !d
|
|
end
|
|
else if s.[i] = ')' then d := !d - 1
|
|
done;
|
|
!m
|
|
|
|
;;
|
|
|
|
max_depth "((1+2)*(3-(4+5)))" + max_depth "(((deep)))" + max_depth "()()()"
|