【问题标题】:Racket - how to return a list of only the elements that occur only once? [closed]球拍 - 如何返回仅出现一次的元素列表? [关闭]
【发布时间】:2020-11-24 23:48:03
【问题描述】:

如何编写一个使用列表并返回仅包含出现一次的元素的列表的函数?这将通过高阶函数(例如折叠、映射或过滤器),而不是使用显式递归。

示例:(list 2 3 67 2 67 1) -> (list 3 1)

【问题讨论】:

标签: racket higher-order-functions


【解决方案1】:

没有代码有问题 -> 没有代码在回答!

大体思路是:

  1. 遍历列表并计算每个列表。这可以通过 foldl 来完成,并且累加器可以是带有键和计数的新结构。在 Racket 中,可以使用哈希作为累加器来获得 O(n) 解决方案。
  2. 过滤计数等于 1
  3. 地图删除计数

祝你好运!

【讨论】:

    猜你喜欢
    • 2015-12-12
    • 2014-07-09
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-04
    • 1970-01-01
    相关资源
    最近更新 更多