当前位置:  开发笔记 > 编程语言 > 正文

在Haskell中生成下一个词典字符串

如何解决《在Haskell中生成下一个词典字符串》经验,为你挑选了0个好方法。

如果给我一个字符串skhfbvqa,我将如何生成下一个字符串?对于这个例子,它将是skhfbvqb,并且下一个字符串将是skhfbvqc,依此类推.给定的字符串(和答案)总是N个字符长(在这种情况下,N = 8).

我尝试了什么:

我试图生成可能组合的整个(无限)列表,并获得给定字符串的必需(下一个)字符串,但不出所料,它太慢了,我甚至得不到N = 6的答案.

我使用了列表理解:

allStrings = [ c : s | s <- "" : allStrings, c <- ['a'..'z'] ]

main = do
    input <- readFile "k.in"
    putStrLn . head . tail . dropWhile (not . (==) input) . map reverse $ allStrings

(请原谅我非常糟糕的Haskell-ing :)还是一个菜鸟)

所以我的问题是,我该怎么做?如果有多种方法,我们非常感谢它们之间的比较.谢谢!

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有