小编Bob*_*mpl的帖子

查找两个单词之间相邻单词的列表

我正在为实践编写一个编程挑战,并且无法找到用于实现解决方案的良好数据结构/算法.

背景:

如果您可以通过添加,删除或更改单个字母将一个单词更改为另一个单词,请将两个单词称为"邻近".

"单词列表"是连续单词相邻的唯一单词的有序列表.

问题:

编写一个程序,它将两个单词作为输入并遍历字典并在它们之间创建单词列表.

例子:

hate  ? love:     hate, have, hove, love
dogs  ? wolves:   dogs, does, doles, soles, solves, wolves
man   ? woman:    man, ran, roan, roman, woman
flour ? flower:   flour, lour, dour, doer, dower, lower, flower
Run Code Online (Sandbox Code Playgroud)

我不太确定如何处理这个问题,我的第一次尝试涉及创建第一个单词的排列,然后尝试替换它中的字母.我的第二个想法可能是后缀树

任何想要或至少打破问题的想法都将受到赞赏.请记住,这不是家庭作业,而是我自己编写的编程挑战.

ruby algorithm data-structures

14
推荐指数
1
解决办法
1695
查看次数

打印没有括号的列表列表

我试图打印Pascals三角形到一些任意行,经过一些想法我想出了这个解决方案:

next xs = zipWith (+) ([0] ++ xs) (xs ++ [0])
pascal n = take n (iterate next [1])

main = do
   n <- readLn :: IO Int
   mapM_ putStrLn $ map show $ pascal n
Run Code Online (Sandbox Code Playgroud)

除印刷外,哪种方法效果很好.当我申请时,pascal 4我得到:

[1]
[1,1]
[1,2,1]
[1,3,3,1]
Run Code Online (Sandbox Code Playgroud)

当我真正想要的是这个:

1
1 1
1 2 1
1 3 3 1
Run Code Online (Sandbox Code Playgroud)

有什么方法可以做到这一点吗?

haskell

6
推荐指数
2
解决办法
1560
查看次数

标签 统计

algorithm ×1

data-structures ×1

haskell ×1

ruby ×1