gpt4 book ai didi

haskell - 检查数字是否包含所有数字

转载 作者:行者123 更新时间:2023-12-02 13:27:59 25 4
gpt4 key购买 nike

在 Haskell 中检查数字是否包含所有数字的有效方法是什么?修改列表的效率非常低,因此保留每个数字出现次数的列表是不行的。您可以在递归中保留 10 个 Bool 变量,在其中遍历数字的数字列表,但这看起来太丑陋了。

最佳答案

我已经做出了比 user2407038's 更快的解决方案.

import Data.Bits
import Data.Char
import Data.List

hasAll10Digits = any (==1023) . scanl setBit (0::Int) . map digitToInt . show

ghci 中,它只需 0.03 秒即可运行 hasAll10Digits (12^223451)。

相比之下,user2407038 的代码运行时间约为 11 秒。

关于haskell - 检查数字是否包含所有数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29105664/

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