小编jac*_*k44的帖子

在单词中找到最短的重复循环?

我即将编写一个函数,它将返回一个最短的一组字母,最终会创建给定的单词.

例如字abkebabkebabkeb通过重复创建abkeb字.我想知道,如何有效地分析输入词,以获得创建输入词的最短字符周期.

language-agnostic algorithm pseudocode

17
推荐指数
2
解决办法
4925
查看次数

是否有可能在O(1)中获得m字符长度组合的第k个元素?

你知道如何在O(1)中获得m元素组合的第k个元素吗?预期的解决方案应适用于任何大小的输入数据和任何m值.

让我通过示例(python代码)解释这个问题:

>>> import itertools
>>> data = ['a', 'b', 'c', 'd']
>>> k = 2
>>> m = 3
>>> result = [''.join(el) for el in itertools.combinations(data, m)]
>>> print result
['abc', 'abd', 'acd', 'bcd']
>>> print result[k-1]
abd
Run Code Online (Sandbox Code Playgroud)

对于给定数据,m元素组合的第k个(在该示例中为第2个)元素是abd.是否可以在不创建整个组合列表的情况下获得该值(abd)?

我问,因为我有大约1,000,000个字符的数据,并且不可能创建完整的m字符长度组合列表来获得第k个元素.

解决方案可以是伪代码,也可以是描述此问题的页面的链接(遗憾的是,我没有找到).

谢谢!

c python java combinations combinatorics

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