我希望这个地方最适合这类问题。
我有以下问题(我认为比看起来更复杂)。
我正在使用字符串的双端队列(deque)数据结构。deque <字符串> 提取;
deque 只包含 N 个不同的字符串,每个字符串以随机顺序重复 M 次,因此 deque 的长度为 N*M,例如假设 M=4, N=2, string1="A", string2= “乙”:
extractions[1] = "A"
extractions[2] = "A"
extractions[3] = "B"
extractions[4] = "B"
extractions[5] = "A"
extractions[6] = "B"
extractions[7] = "B"
extractions[8] = "A"
我正在寻找一种算法,它可以让我找到一个有趣的配置,其中没有两个连续的相等元素,在这种情况下应该只有两个解决方案,“A”,“B”,“A”, "B","A","B","A","B" 和 "B","A","B","A","B","A","B","一种”。对于“有趣”的配置,我的意思不是简单地由 N 个嵌套循环给出的配置。
我实施的一个非常愚蠢的解决方案是随机洗牌,std::random_shuffle
直到没有找到连续相等的元素,但这既愚蠢又缓慢,这更像是一个 bogosort ......
显然最大化字符串之间的编辑距离应该更好。一些提示?