c#穷举循环代码
现在有一道选项题,答案分为abc三种,10个人来回答,用c#循环代码来穷举出所有的非重复排列。例如aaaaaaaaab和aaaaaaaaab这样整个字符串相同的只可以存在...
现在有一道选项题,
答案分为abc三种,
10个人来回答,用c#循环代码来穷举出所有的非重复排列。
例如aaaaaaaaab和aaaaaaaaab这样整个字符串相同的只可以存在一个
同理,aaaaaaaaab和baaaaaaaaa也只可以存在一个
换句话说,所有排列中,abc这三个选项所出现的个数完全相同是不可以的
比如上面的aaaaaaaaab是9个a,1个b
而baaaaaaaaa也是9个a,1个b
所以这样的排列只能出现一次
最终返回一个List<string>,里面是所有符合条件的字符串。
例如如下是合格输出(注:合格与不合格这几个字不输出,只是标明是否符合条件,不合格的是不用输出的):
aaaaaaaaaa 合格
aaaaaaaaab 合格
aaaaaaaaac 合格
aaaaaaaaaa 不合格(与第1行重复)
aaaaaaaaba 不合格(与第2行重复,因为这两行都是1个b,9个a)
aaaaaaaaca 不合格(与第3行重复,因为这两行都是1个c,9个a) 展开
答案分为abc三种,
10个人来回答,用c#循环代码来穷举出所有的非重复排列。
例如aaaaaaaaab和aaaaaaaaab这样整个字符串相同的只可以存在一个
同理,aaaaaaaaab和baaaaaaaaa也只可以存在一个
换句话说,所有排列中,abc这三个选项所出现的个数完全相同是不可以的
比如上面的aaaaaaaaab是9个a,1个b
而baaaaaaaaa也是9个a,1个b
所以这样的排列只能出现一次
最终返回一个List<string>,里面是所有符合条件的字符串。
例如如下是合格输出(注:合格与不合格这几个字不输出,只是标明是否符合条件,不合格的是不用输出的):
aaaaaaaaaa 合格
aaaaaaaaab 合格
aaaaaaaaac 合格
aaaaaaaaaa 不合格(与第1行重复)
aaaaaaaaba 不合格(与第2行重复,因为这两行都是1个b,9个a)
aaaaaaaaca 不合格(与第3行重复,因为这两行都是1个c,9个a) 展开
展开全部
你好,一共三层嵌套。
for(int a = 0; a < 11; a ++)
{
string strTemp = string.empty;
int aCount = a;
while(aCount > 0)
{
strTemp += "a";
aCount--;
}
for(int b = 10-a; b < a;b++)
{
int bCount = b;
while(bCount > 0)
{
strTemp += "b";
bCount--;
}
for(int c = 10-b; c<b; c ++)
{
int cCount = c;
while(cCount>0)
{
strTemp += "c";
cCount--;
}
list.add(strTemp);
}
}
}
大概思路就是这样,你调试一下就可以用了。
for(int a = 0; a < 11; a ++)
{
string strTemp = string.empty;
int aCount = a;
while(aCount > 0)
{
strTemp += "a";
aCount--;
}
for(int b = 10-a; b < a;b++)
{
int bCount = b;
while(bCount > 0)
{
strTemp += "b";
bCount--;
}
for(int c = 10-b; c<b; c ++)
{
int cCount = c;
while(cCount>0)
{
strTemp += "c";
cCount--;
}
list.add(strTemp);
}
}
}
大概思路就是这样,你调试一下就可以用了。
更多追问追答
追问
结果不对,总数也不对。
追答
不好意思,刚有点事没回复。
代码太长了添加不了,附件里是CODE
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询