3
A
回答
2
即使使用fold_left
工作的其他解决方案,这里是 “手动编码” 的解决方案:
let longestsublist l =
(let rec aux l current_max = match l with
| [] -> current_max
| x::xs -> aux xs (max (List.length x) current_max)
in aux l (-1))
4
我与OCaml的相当生疏,但一List.fold_left
应该足够:
List.fold_left (fun a b -> Pervasives.max a (List.length b)) 0 [[1;2];[1;2;3];[]]
我现在不能对代码进行测试并且自从我上次使用OCaml(版本3.XX)以来已经很长时间了,所以语法可能有点不同,但是这种方法绝对有效:您通过折叠函数来获取当前最大值和当前子列表作为输入,它将返回两者之间的最大值。
+0
你可以尝试使用elementar操作吗?我的意思是不使用List.fold_left和List.length? –
+0
您必须定义“基本操作”的含义。如果你不能使用列表模块,它会引起问题,因为你正在使用列表。 – nlucaroni
3
这应该工作
List.fold_left (fun current_max l -> max current_max (List.length l)) 0 [[1;2]; [1;2;3]; []]
,您可以尝试在http://try.ocamlpro.com
相关问题
- 1. OCaml中的游程长度解码
- 2. Python中列表的长度?
- 3. Prolog中的列表长度
- 4. OCaml searchin增长最长的子序列
- 5. Ocaml中最长的公共子序列
- 6. 列表的长度是五,但我想列表的长度150
- 7. S的长度列表中的[长度为l]的子集
- 8. 在OCaml中使用长度函数
- 9. Ocaml中的列表反转
- 10. OCaml中的旋转列表
- 11. 修改列表的列表OCaml中
- 12. Python:最长的子列表的长度?
- 13. 与列表OCaml中
- 14. 下拉列表的长度
- 15. Angular.js:表中的列的动态长度
- 16. 整数列表中最长的子序列的长度
- 17. 编辑另一个可变长度列表中的可变长度列表
- 18. Prolog列表长度
- 19. 创建列表的长度在另一列中提到列表的长度列表
- 20. 获取表中列表中每列的最大列长度
- 21. 获取Lazarus中TStrings列表的长度
- 22. 邻接列表中的边缘长度
- 23. while while循环中的列表长度
- 24. 在MongoDB中检索列表的长度
- 25. wxPython的 - 长度的颜色列表不匹配长度间隔范围列表
- 26. 从列表的列表中删除列表,以及更OCaml中
- 27. OCaml编译器检查向量长度
- 28. jinja模板中列表的长度,其中列表是DBSession.query
- 29. 如何访问R中列表中的可变长度列表
- 30. 记忆化列表ocaml的
的','在元组中使用,而不是列表。使用分号分隔列表中的个人。 – nlucaroni
谢谢。那是我在ocaml中的典型错误。 –