【发布时间】:2016-02-24 23:18:15
【问题描述】:
在我继续寻找解决方案的同时,我希望有人可以帮助我。
我对如何遍历哈希表并查找重复键感到困惑。我想删除重复项,但合并它们的值。
所以,假设我有一个字符串列表:
(define strings '("abcde" "bcdea" "cdeab" "deabc" "eabcd" "abcde"))
我将它们存储到一个哈希表中,其中的值是它们在列表中的索引位置。
所以,我想建立一个这样的哈希表:
(abcde (0, 5))
(bcdea 1)
(cdeab 2)
(deabc 3)
(eabcd 4)
每个字符串都是一个键,值是找到该字符串的索引列表。基本上,我正在计算一个大字符串中子字符串的出现次数,并注意它们的位置。
我知道如何制作哈希表:
(define my-hash-table (make-hash))
(for-each (lambda (s v) (hash-set! my-hash-table s v)) strings values) ;;values is a list of 0,1,2,3,4,5
(map (lambda (s) (list s (hash-ref my-hash-table s))) strings)
这只是建立一个键及其值的哈希表,它不考虑表中是否已经存在键。
如果有任何建议,我将不胜感激。如果有人不介意与我一起逐步完成它,我将非常感激,我正在努力学习计划。
我正在使用 RSR5。
【问题讨论】: