# C# 排列组合问题 求大佬解答

0

A A1
B B1
C C1 C2
D D1
E

A B
A B1
A C
A C1
A C2
A D
A D1
A E

A1 B
A1 B1
A1 C
A1 C1
A1 C2
A1 D
A1 D1
A1 E

B C
B C1
B C2
B D
B D1

A B C
A B C1
A B C2
A B D
A B D1
A B E
A B1 C
A B1 C1
A B1 C2
A B1 D
A B1 D1
A B1 E
A C D
A C D1
A C E
A C1 D
A C1 D1
A C1 E
A C2 D
A C2 D1
A C2 E

1
```using System;
using System.Collections.Generic;
using System.Text;

namespace Combination
{
class Program
{
static void Main(string[] args)
{
string[] Sample = new string[] { "0", "1", "2", "3", "4", "5","6","7","8","9","a","b","c","d","e","f","g" };
List<string> SampleList = new List<string>();
List<string> result = getCombination(SampleList, 3);
}　　　　　//从n个字符串中取m个字符的所有组合（无放回抽样）
static List<string> getCombination(List<string> SampleList, int m)
{
if (m == 1)
{
return SampleList;
}
List<string> result = new List<string>();
if (SampleList.Count == m)
{
StringBuilder temp_sb = new StringBuilder();
foreach (string s in SampleList)
{
temp_sb.Append(s);
}
Console.WriteLine(temp_sb.ToString());
return result;
}
string temp_firstelement = SampleList[0];
SampleList.RemoveAt(0);
List<string> temp_samplist1 = new List<string>();
List<string> temp_list1 = getCombination(temp_samplist1, m - 1);
foreach (string s in temp_list1)
{
Console.WriteLine(temp_firstelement + s);
}
List<string> temp_samplist2 = new List<string>();
List<string> temp_list2 = getCombination(temp_samplist2, m);
return result;
}
}
}```

0

0

happyZYM | 园豆：248 (菜鸟二级) | 2018-08-24 20:12

您需要登录以后才能回答，未注册用户请先注册