【问题标题】:How to get all combinations of chars in string[] array items?如何获取字符串 [] 数组项中的所有字符组合?
【发布时间】:2015-01-15 03:08:50
【问题描述】:

有一个字符串数组(例如):string[] arr = {"123","123","123"}; 如何在项中获取数组中所有可能的字符组合,例如:111,121,131,112,113 等,从每个项中仅获取一个字符?

【问题讨论】:

  • 您能至少解释一下这样做的目的是什么吗?
  • 你的任务描述完全不清楚。请考虑编辑您的问题以使其更易于理解。最好的问候,
  • 我完全不知道您的要求是什么,如果您尝试过任何解决方案,也不知道您的实际问题是什么!
  • 您关于“看起来优雅和美丽”的说法令人困惑:您是在要求我们为您编写代码吗?请向我们展示您自己的代码并清楚地找出有问题的部分。

标签: c# arrays string combinations


【解决方案1】:

你可以这样使用:

string _combinations = String.Empty;
for (int i=0; i<arr.Length;i++){
    for (int j=0; j<arr.Length;j++){
        for (int k=0; k<arr.Length;k++){
            combinations=String.Concat(combinations,arr[i], arr[j], arr[k], ",");
        }
    }
}

如果数组中的项太多,则进行递归函数调用,将下一个数组项中的字符添加到函数返回的中间数组中先前计算的每个组合中,如下所示:

public string[] CalculateCombinationsArray( string[] array1, string NextItem)
{
    string _combinations = String.Empty;
    for (int i=0; i<array1.Length;i++){
        for (int j=0; j<NextItem.Length;j++){
            combinations=String.Concat(combinations,array1[i], NextItem.Substring(j,1), ",");
        }
    }
    return combinations.Split[","];
}

其余的你可以自己做。 希望这会有所帮助。

【讨论】:

  • if arr.length=100.Do you want to do 100 cycles?
  • 如果arr.length=100,是不是需要写100?
猜你喜欢
  • 2012-08-16
  • 1970-01-01
  • 1970-01-01
  • 2022-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-20
相关资源
最近更新 更多