如何使用c#计算字符串可能组合的总数?

如何使用c#计算字符串可能组合的总数?,c#,string,algorithm,C#,String,Algorithm,我想解决一个算法,其中我有以下输入: n=30,st=1234321 现在我想看看有多少组合可以使用字符串形成,即。 它可以有 (123421) (1234321) (1234321) (1234 2 1) (123421) (1234321) i、 e.均少于30人。因此,总组合将为6 但是,当单独出现0或像09一样出现在前导中时,我们会在计数中对字符串进行dicard 以n=70和st=8675309为例。在这种情况下,我们有: (8675309) (8675309) (8 6 7 5309

我想解决一个算法,其中我有以下输入:

n=30,st=1234321

现在我想看看有多少组合可以使用字符串形成,即。 它可以有

(123421)
(1234321)
(1234321
1234 2 1)
123421
(1234321

i、 e.均少于30人。因此,总组合将为6

但是,当单独出现0或像09一样出现在前导中时,我们会在计数中对字符串进行dicard

以n=70和st=8675309为例。在这种情况下,我们有:

(8675309)
(8675309)
(8 6 7 5309)
(8 6 7 5 30 9)
(8675309
(8675309)
(8675309)
(8675309

这里的计数总数仅为2(如果单独存在0或在前导中存在0(如09),则不进行计数)


请建议我使用c#code for来找到这样的组合。

您可以将您的空间建模为二叉树:在
n
th级别上,左侧的子级将
n
th和
n+1
th数字加入列表中,右侧的子级不加入。使用DFS并修剪受约束非法的分支,然后计算叶节点。

您可以将您的空间建模为二叉树:在
n
th级别上,左侧子节点加入列表中的
n
th和
n+1
th编号,右侧子节点不加入。使用DFS并修剪受约束非法的分支,然后计算叶节点。

到教程,并在C#中为字符串置换类编写代码。我不会把你们的数字转换成这个代码,因为这是非常直接的

祝你好运

到C#中字符串置换类的教程和代码。我不会把你们的数字转换成这个代码,因为这是非常直接的


祝你好运

这是一个简单的问题,唯一唯一独特的部分是,您需要计算所有子字符串值并获得唯一值,然后再找到所有加起来小于60的组合

1) Get all unique sub string values
2) Get all permutations for these values
3) then remove any that add up to be over 60
4) do step 2 again
将讨论步骤2至4


与使用树相比,性能会差一点,但对于长度较小的起始字符串,性能不会差很多。

这是一个简单的问题,唯一的独特之处在于,您需要计算所有子字符串值并获得唯一值,然后再查找所有加起来小于60的组合

1) Get all unique sub string values
2) Get all permutations for these values
3) then remove any that add up to be over 60
4) do step 2 again
将讨论步骤2至4


与使用树相比,性能会差一些,但对于长度较小的起始字符串,性能不会差很多。

您尝试过什么?顺便说一句,我删除了你的asp.net标签,因为这个问题绝不是针对web开发的。可能与你尝试过的内容重复?顺便说一句,我删除了你对asp.net的标记,因为这个问题绝不是针对web开发的。可能是+1的重复-在没有给出任何代码的情况下解释算法做得很好(尽管听起来OP更愿意接受代码)。我花了90%的精力来破解这个问题,所以我写了一个完整的答案,用我剩下的回答。不,不,不,我赞扬你对一个不完整的问题给出了连贯的回答。OP在写他们(非常隐晦和模棱两可)的问题时几乎没有付出什么努力。答案不应包含代码。我的观点是,考虑到问题的措辞,他们可能更愿意这样做。@B战神:请给我一些问题前半部分的代码,即仅计算第一个案例n=30和st=1234321,我将处理存在0的情况。@ItsLockedOut-因此不是一个出租编码网站。如果你想要源代码,请自己编写,并在编写过程中向我们提问,或者花钱请人为你编写代码。+1-在不提供任何代码的情况下解释算法做得很好(尽管听起来OP更愿意接受代码)。我花了90%的精力来破解这个问题,所以我写了一个完整的答案,用我剩下的回答。不,不,不,我赞扬你对一个不完整的问题给出了连贯的回答。OP在写他们(非常隐晦和模棱两可)的问题时几乎没有付出什么努力。答案不应包含代码。我的观点是,考虑到问题的措辞,他们可能更愿意这样做。@B战神:请给我一些问题前半部分的代码,即仅计算第一个案例n=30和st=1234321,我将处理存在0的情况。@ItsLockedOut-因此不是一个出租编码网站。如果您想要源代码,请自己编写,并在编写过程中向我们提出问题,或者花钱请人为您编写代码。如果您更仔细地研究这个问题,您会发现他对元素的排列不感兴趣,而是对元素的串联感兴趣。如果您更仔细地研究这个问题,您将看到,他对元素的排列不感兴趣,而是对元素的串联感兴趣。