gpt4 book ai didi

Haskell:两个整数列表之间的匹配次数?

转载 作者:行者123 更新时间:2023-12-02 02:52:08 26 4
gpt4 key购买 nike

假设我有两个整数列表:

4 12 24 26 35 41

42 24 4 36 2 26

两个列表之间有 3 个匹配项。

如何计算 Haskell 中任意两个列表之间的匹配次数?

谢谢。

最佳答案

如果不需要处理多个元素,最简单的方法是计算交集的长度

import Data.List

matches :: Eq a => [a] -> [a] -> Int
matches xs ys = length (intersect xs ys)

使用 Set 效率更高s 作为中间结构,如果您还有 Ord实例:
import qualified Data.Set as S

matches :: Ord a => [a] -> [a] -> Int
matches xs ys = S.size (S.intersection (S.fromList xs) (S.fromList ys))

如果您需要处理重复,请使用 Map计算每个元素的出现次数将是一个不太困难的修改。

关于Haskell:两个整数列表之间的匹配次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8518940/

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