【发布时间】:2017-01-07 17:10:41
【问题描述】:
我想生成特定字符串的所有可能的连续单词组合,给定最小长度作为 arg。
假设我有“hello”,结果将是(给定最小长度为 3):'hel'、'ell'、'llo'、'hell'、'ello'、'hello'。
我实现这一目标的一种方法是:
def get_all_word_combinations(str, min_length)
chars = str.split('')
all_results = []
(min_length..str.size).each do |x|
chars.each_cons(x) do |r|
all_results << r.join
end
end
return all_results
end
但不确定这是否适用于更大的单词。
【问题讨论】:
-
@Carcigenicate 抱歉,问题更多是关于问题的正确性。已编辑。
-
换个问题:为什么不能处理更大的单词?代码中的什么取决于字长?也就是说,要求并不明确。 “hel”和“leh”有区别吗?
-
这里看不出什么问题...也许
get_all_word_slices是一个更好的名字。 -
当你用更大的词尝试它时发生了什么?
-
这与stackoverflow.com/questions/41521492/… 有关吗?我不确定你真的需要所有这些子字符串
标签: ruby string combinations words