【发布时间】:2020-02-29 15:13:18
【问题描述】:
我有一本这样的字典。
Dictionary<int, string> Diccionario = new Dictionary<int, string>(){
{1,"124"} , {4,"1457"} , {7,"478"},
{2,"1235"} , {5,"24568"} , {8,"05789"},
{3,"236"} , {6,"3569"} , {9,"698"},
{0,"08"}
};
我想获得n 整数的所有组合。例如。
对于n = 11 - 11, 12, 14, 21, 22, 24, 41, 42, 44.
对于n = 24-11, 14, 15, 17, 21, 24, 25, 27, 31, 34, 35, 37, 51, 54, 55, 57.
对于n = 339 - 236, 256, 259...
等等...但是我不知道如何遍历所有这些数字,因为每个数字的长度并不总是相同的。 (1 有三种可能的组合,2 有四种;以此类推)
谢谢!
既然你们问我数据是从哪里来的……它来自这里。
假设 PIN 是 1273,那么有必要根据相邻的数字(水平和垂直)创建所有可能的组合,例如(1 有 2、3 和数字本身),这样更容易我做了前面可以看到的字典,为每个键赋予其可能的值。
由于答案已关闭,我不确定我可以添加什么样的信息,因为我不能对这个问题说太多。就像我有一本颜色字典,例如:
Dictionary<int, string> Diccionario = new Dictionary<int, string[]>(){
{1,{"red"}, {"blue"}, {"green"}} ,
{2,{{"green"}, {"orange"} },
{3, {{"dark"}}
};
因此,如果我得到 32 号组合,则为:Dark Green 或 Dark Orange
不确定我是否在说明我的观点。
【问题讨论】:
-
n=11的结果如何从 11 到 44?而其他的开始结果低于n?如果与 n 的值不相关,那么该最小值从何而来? -
我想只要您为数据和创建该输出的规则提供一些有意义的输入,您就可以自己解决这个问题。目前我不知道这些数字是如何得出的。没有 11、31 或 24 或其他所有这些。
-
抱歉耽搁了,我更新了帖子,所以你可以看到数据来自哪里......
-
“周围的数字(水平和垂直)例如(1 有 2、3 和数字本身)”不。 1 有 2 和 4 作为相邻的数字。但除此之外,它正在慢慢开始变得有意义。我的回答是正确的:你需要一个
Dicitonary<int, int[]> -
我越了解这个问题,这个设计就越是错误的。 Diccionario 应该是
Dictionary<int, int[]>。永远不要把完美的整数变成字符串。字符串很难使用。充其量是 I/O 的必要之恶n 也应该是int[]。分别为“1,1”、“2,4”和“3,3,9”。您不应该将两个完全独立且不相关的整数变成一个整数。
标签: c# dictionary combinations