如题,在C#/.NET/.NET Core应用程序编程开发中,实现字母A-Z中取N个字母的全排列有哪些方式呢?比如现在需要从取3个字母的全排列,形如:aaa .. aaz .. aba .. abz .. aca .. acz .. azz .. baa .. baz .. bba .. bbz .. zzz,应该如何实现呢?除了最原始的使用for循环的方式,还有哪些更优雅,更简洁的实现方式?
aaa .. aaz .. aba .. abz .. aca .. acz .. azz .. baa .. baz .. bba .. bbz .. zzz
Rector
2020-04-17 提问
一种使用LINQ实现的N个字母全排列的简洁方式,如下:
核心算法:
完整示例代码如下:
输出结果:
你可以通过调整int N = 3;中的N的值来指定任意长度的字母组合的全排列。
int N = 3;
N
2020-04-17 回答
使用LINQ和SelectMany()方法实现任意长度字母组合的全排列的另一种方式,如下:
SelectMany()
最原始的使用for循环实现的3个字母全排列的方案(仅参考),如下:
for
码龄: 3105天
专注.NET/.NET Core