博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
组合 z
阅读量:6198 次
发布时间:2019-06-21

本文共 1128 字,大约阅读时间需要 3 分钟。

输入a b c d e以及它们对应的数字

比如
a-->1 2 3 
b-->2 3
c-->1
d-->3 4 5
e-->1 3 5
输出a b c d e的可用组合,a b c d e不重复,如
a-->2
b-->3
c-->1
d-->4
e-->5

 

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace ConsoleApplication1{    class Program    {        static void Main(string[] args)        {            var dict = new Dictionary
>() { { 'a', new List
{ 1, 2, 3 } }, { 'b', new List
{ 2, 3 } }, { 'c', new List
{ 1 } }, { 'd', new List
{ 3, 4, 5 } }, { 'e', new List
{ 1, 3, 5 } } }; foo(dict, new Dictionary
()); } static void foo(Dictionary
> data, Dictionary
pre) { if (data.Count == 0) { Console.WriteLine("found:"); foreach (var item in pre.OrderBy(x => x.Key)) Console.WriteLine("{0} - {1}", item.Key, item.Value); return; } var first = data.OrderBy(x => x.Value.Count()).First(); foreach (var item in first.Value) { foo(data.OrderBy(x => x.Value.Count()).Skip(1).ToDictionary(x => x.Key, x => x.Value.Except(new int[] { item }).ToList()), pre.Cast
>().Concat(new KeyValuePair
[] { new KeyValuePair
(first.Key, item) }).ToDictionary(x => x.Key, x => x.Value)); } } }}

 

转载地址:http://iynca.baihongyu.com/

你可能感兴趣的文章
RHEL6.3内核升级实战篇
查看>>
我的友情链接
查看>>
Python单引号双引号三引号的区别
查看>>
openrtmfp+action script +flash builder搭建P2p视频服务器
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
css modules
查看>>
android下的android.os.StrictMode$AndroidBlockGuardPo
查看>>
路由重发布
查看>>
[c][算法]二叉树的深度
查看>>
使用ESXi-Customizer-v2.7.2定制ESXi安装盘
查看>>
thrift序列化
查看>>
我的友情链接
查看>>
RadioButton 设置文字居中
查看>>
我的友情链接
查看>>
局部参数
查看>>
0-1 背包
查看>>
笔记本电脑液晶屏灯管的接口方式
查看>>
5102背景和多国语言的构造
查看>>
ubuntu启动无桌面图标?
查看>>