我会尝试用示例来解释。
来源:
something
变化:
s.o.m.e.t.h.i.n.g
so.m.e.t.h.i.n.g
som.e.t.h.i.n.g
som.et.hi.n.g.
.
.
.
我需要一个算法来创建像上面的 c# 或 delphi 中的最大变体
有人知道吗?
最佳答案
using System;
using System.Collections.Generic;
namespace ConsoleApplication {
public static class ConsoleApp {
public static void Main() {
foreach (var permutation in Permutations("some"))
Console.WriteLine(permutation);
Console.ReadLine();
}
public static IEnumerable<String> Permutations(String value) {
if (value.Length == 1) {
yield return value;
} else {
var current = value.Substring(0, 1);
foreach (var permutation in Permutations(value.Substring(1)))
yield return current + "." + permutation;
foreach (var permutation in Permutations(value.Substring(1)))
yield return current + permutation;
}
}
}
}
关于c# - 用一对或多对字符之间的点确定单词排列的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4534721/