racket - 球拍 - 如何返回仅出现一次的元素列表?
问题描述
我将如何编写一个使用列表并返回仅包含一次的元素的列表的函数?这将通过高阶函数,如折叠、映射或过滤器,而不是使用显式递归。
示例:(列表 2 3 67 2 67 1)->(列表 3 1)
解决方案
没有问题的代码 -> 没有答案的代码!
总体思路是:
- 遍历列表并计算每一个。这可以通过 foldl 来完成,并且累加器可以是带有键和计数的新结构。在 Racket 中,可以使用哈希作为累加器来获得 O(n) 解决方案。
- 过滤计数等于 1
- 地图删除计数
祝你好运!
推荐阅读
- docker - Docker Desktop for Windows 上的 docker.exe 和 dockercli.exe 有什么区别?
- reactjs - 如何更新componentDidMount中的状态?
- java - 如何将 log4j 与 TestNG 集成?
- multithreading - 增加线程数会降低 CPU 性能
- java - 通过按JButton问题将JButton添加到JPanel
- php - 如何随机化 file_get_html 的用户代理?
- real-time - 如何实时运行基于 TensorRT 的深度学习模型?
- c - 如何修复“realloc():无效指针”
- ruby - 为什么索引为 [0, 1] 的子字符串会返回两个字符,包括转义反斜杠?
- plumber - Plumber API 在服务器上工作,但在我使用 systemd 设置时不工作