giles
3759aad7a6
Test, Build, and Deploy / test-build-deploy (push) Failing after 22s
ocaml: phase 5.1 anagram_groups.ml baseline (group by canonical anagram, 3 groups)
...
canonical builds a sorted-by-frequency string representation:
let canonical s =
let chars = Array.make 26 0 in
for i = 0 to String.length s - 1 do
let k = Char.code s.[i] - Char.code 'a' in
if k >= 0 && k < 26 then chars.(k) <- chars.(k) + 1
done;
expand into a-z order via a Buffer
For 'eat', 'tea', 'ate' -> all canonicalise to 'aet'. For 'tan',
'nat' -> 'ant'. For 'bat' -> 'abt'.
group_anagrams folds the input, accumulating per-key string lists;
final answer is Hashtbl.length (number of distinct groups):
['eat'; 'tea'; 'tan'; 'ate'; 'nat'; 'bat'] -> 3 groups
99 baseline programs total.
2026-05-09 19:47:21 +00:00
..
2026-05-09 08:50:12 +00:00
2026-05-09 19:18:01 +00:00
2026-05-09 12:14:32 +00:00
2026-05-09 19:47:21 +00:00
2026-05-08 19:57:09 +00:00
2026-05-09 12:34:36 +00:00
2026-05-09 06:15:03 +00:00
2026-05-09 06:59:22 +00:00
2026-05-09 12:52:55 +00:00
2026-05-09 12:24:48 +00:00
2026-05-08 21:05:32 +00:00
2026-05-09 11:19:23 +00:00
2026-05-09 13:02:17 +00:00
2026-05-09 09:15:00 +00:00
2026-05-09 02:24:45 +00:00
2026-05-09 10:40:49 +00:00
2026-05-08 17:52:49 +00:00
2026-05-09 00:13:11 +00:00
2026-05-08 16:53:44 +00:00
2026-05-08 13:44:28 +00:00
2026-05-09 10:21:11 +00:00
2026-05-09 16:28:15 +00:00
2026-05-09 01:47:27 +00:00
2026-05-08 13:44:28 +00:00
2026-05-09 12:04:42 +00:00
2026-05-09 19:47:21 +00:00
2026-05-08 15:01:04 +00:00
2026-05-09 11:09:23 +00:00
2026-05-08 13:33:24 +00:00
2026-05-09 17:36:24 +00:00
2026-05-09 15:53:47 +00:00
2026-05-08 17:44:07 +00:00
2026-05-09 11:52:19 +00:00
2026-05-09 06:05:31 +00:00
2026-05-09 01:11:53 +00:00
2026-05-09 11:42:52 +00:00
2026-05-09 19:08:19 +00:00
2026-05-09 09:34:40 +00:00
2026-05-09 17:45:52 +00:00
2026-05-09 14:40:22 +00:00
2026-05-09 13:30:46 +00:00
2026-05-09 18:27:50 +00:00
2026-05-09 08:21:19 +00:00
2026-05-09 15:02:13 +00:00
2026-05-09 17:55:07 +00:00
2026-05-09 07:41:01 +00:00
2026-05-09 10:07:12 +00:00
2026-05-08 19:49:08 +00:00
2026-05-09 00:23:58 +00:00
2026-05-08 13:33:24 +00:00
2026-05-09 15:42:01 +00:00
2026-05-09 19:27:14 +00:00
2026-05-09 11:00:00 +00:00
2026-05-09 15:22:28 +00:00
2026-05-09 18:58:32 +00:00
2026-05-08 19:10:49 +00:00
2026-05-09 18:39:46 +00:00
2026-05-09 05:00:50 +00:00
2026-05-09 17:24:53 +00:00
2026-05-09 15:11:46 +00:00
2026-05-08 13:33:24 +00:00
2026-05-09 19:37:11 +00:00
2026-05-09 14:52:13 +00:00
2026-05-08 18:43:19 +00:00
2026-05-09 08:29:01 +00:00
2026-05-08 13:33:24 +00:00
2026-05-09 10:31:22 +00:00
2026-05-09 16:03:22 +00:00
2026-05-09 16:13:05 +00:00
2026-05-09 09:57:18 +00:00
2026-05-09 16:38:09 +00:00
2026-05-09 07:19:52 +00:00
2026-05-08 20:49:26 +00:00
2026-05-09 17:15:47 +00:00
2026-05-09 14:21:24 +00:00
2026-05-09 09:24:41 +00:00
2026-05-09 12:44:02 +00:00
2026-05-08 19:04:04 +00:00
2026-05-08 13:44:28 +00:00
2026-05-08 23:40:36 +00:00
2026-05-09 08:39:56 +00:00
2026-05-09 16:47:56 +00:00
2026-05-09 09:47:25 +00:00
2026-05-09 00:13:11 +00:00
2026-05-09 06:47:47 +00:00
2026-05-09 07:31:33 +00:00
2026-05-09 02:16:18 +00:00
2026-05-09 18:09:33 +00:00
2026-05-09 16:56:46 +00:00
2026-05-09 18:49:00 +00:00
2026-05-09 13:46:40 +00:00
2026-05-08 13:33:24 +00:00
2026-05-09 14:00:49 +00:00
2026-05-09 17:06:10 +00:00
2026-05-09 15:32:11 +00:00
2026-05-09 13:15:05 +00:00
2026-05-09 05:44:35 +00:00
2026-05-09 08:11:07 +00:00
2026-05-08 16:11:03 +00:00
2026-05-09 08:01:21 +00:00
2026-05-09 18:19:02 +00:00
2026-05-09 14:30:55 +00:00
2026-05-09 11:33:30 +00:00