if we encounter an empty state when getting follow positions, skip to next char

This commit is contained in:
2025-10-06 07:44:46 +01:00
parent 303bcdf23d
commit c995d3cdf7
2 changed files with 73 additions and 40 deletions

View File

@@ -93,4 +93,28 @@ struct
fun exists (findNum, vec) =
helpExists (findNum, vec, 0, Vector.length vec - 1)
end
local
fun helpEqualOrMinus1 (findNum, vec, low, high) =
let
val mid = low + ((high - low) div 2)
in
if high >= low then
let
val midVal = Vector.sub (vec, mid)
in
if midVal = findNum then
mid
else if midVal < findNum then
helpEqualOrMinus1 (findNum, vec, mid + 1, high)
else
helpEqualOrMinus1 (findNum, vec, low, mid - 1)
end
else
~1
end
in
fun equalOrMinus1 (findNum, vec) =
helpEqualOrMinus1 (findNum, vec, 0, Vector.length vec - 1)
end
end