因此,如果我有以下字符串:
orig_string = ' adklsdn asnien单词nsaldkng是asldkn中的lskndl '
我像这样迭代它:
orig_string.length.times do |index1|
orig_string[index1..orig_string.length].length.times do |index2|
puts orig_string[index2..orig_string.length]
unless orig_string[index1..index2].length == 0 then puts orig_string[index1..index2] end
end
end
获取字符串的所有可能组合并保留顺序。我试图通过引用约 5,000 个单词的字典从该字符串中提取尽可能多的英语单词。最终我计划迭代许多字符串,所以性能是关键,这就是为什么我要尊重我的同行。
将字典加载到内存中并通过它进行二进制搜索会更快,还是将其加载到 sqlite3 db 并为每个排列运行查询?
此外,是否有更好的方法来获取原始字符串的所有排列并保留顺序?
谢谢!!