gpt4 book ai didi

algorithm - Haskell:两个单词之间的共享字母

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:13:11 25 4
gpt4 key购买 nike

我刚开始学习 Haskell。我正在尝试获取两个单词之间所有常用字母的列表,例如,"hello""llama" 将是 [ 'l' , 'l' ], 对于 "happy""pay", [ 'a', 'p', 'y' ].

我试过使用 intersect 但我遇到了重复的问题,"happy""pay" 导致 [ 'a', 'p', ' p', 'y']。我不能像第一个示例那样只删除重复项,因为它们可能存在。

如有任何建议,我将不胜感激。谢谢!

最佳答案

您可以使用 multiset包裹:

Data.MultiSet> fromList "hello" `intersection` fromList "llama"
fromOccurList [('l',2)]
Data.MultiSet> fromList "happy" `intersection` fromList "pay"
fromOccurList [('a',1),('p',1),('y',1)]

data-ordlist包还提供了这个功能:

Data.List Data.List.Ordered> sort "hello" `isect` sort "llama"
"ll"
Data.List Data.List.Ordered> sort "happy" `isect` sort "pay"
"apy"

关于algorithm - Haskell:两个单词之间的共享字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46921233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com