Java实现组合C(m,n)
来源:互联网 发布:中国数据网 编辑:程序博客网 时间:2024/05/23 16:38
今天刚做完排列A(m,n)问题,又来个组合问题,开始以为差不多,后面发现还有有点差距的,话不多说,列出代码,以方便后面回顾。
package sky_100;import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * * @author Benett * @date 2017年8月23日 下午11:45:24 * @version 1.0 */public class Combination { public static void main(String[] args) { String str = "dabc"; List<String> cr = getCombinationResult(2, stringFilter(str)); for(String s: cr){ System.out.println(s); } } /** * 对字符串中元素进行重排序 * 此外还可以在该方法对元素进行去重等 * @param str 原字符串 * @return 目标字符串 */ public static String stringFilter(String str){ char[] c = str.toCharArray(); Arrays.sort(c); return new String(c); } /** * 得到组合结果 * @param num 从N个数中选取num个数 * @param str 包含Ng个元素的字符串 * @return 组合结果 */ public static List<String> getCombinationResult(int num, String str) { List<String> result = new ArrayList<String>(); if (num == 1) { for (char c : str.toCharArray()) { result.add(String.valueOf(c)); } return result; } if (num >= str.length()) { result.add(str); return result; } int strlen = str.length(); for (int i = 0; i < (strlen - num + 1); i++) { List<String> cr = getCombinationResult(num - 1, str.substring(i + 1));//从i+1处直至字符串末尾 char c = str.charAt(i);//得到上面被去掉的字符,进行组合 for (String s : cr) { result.add(c + s); } } return result; }}
阅读全文
0 0
- Java实现组合C(m,n)
- 组合C(m,n)
- 组合数C(n,m)
- n选m个元素组合java实现
- 组合数算法 C(n,m)(n>=m)
- m个数取n个进行组合 C m n
- 计算组合数C(m,n)
- C(n,m)的组合问题
- 变态组合数C(n,m)求解
- 组合数求模C(n,m)%(10^10)
- 求C(n,m)组合问题
- 组合c(m,n)的计算方法
- 组合c(m,n)的计算方法
- 组合c(m,n)的计算方法
- 求组合数c(n,m)
- 计算组合数C(n,m)
- 组合数C(n,m)的计算
- 组合c(m,n)的计算方法
- n进制下表达式成立
- 自然语言处理常用算法
- python基础之元组、文件操作、编码、函数、变量
- 煤矿井下精确人员定位系统—Openlayers简单构建与批量构建后端数据为GeoJSON
- Free from square
- Java实现组合C(m,n)
- 《Head first html&css》笔记
- tp3.2路由定义
- 《web全栈工程师的自我修养》笔记
- POJ 1639 Picnic Planning(有限制的最小生成树)
- java操作文件,字节流与字符流介绍
- cookie和session的详解
- MOS管驱动电路,看这里就啥都懂了!
- <8/23>集训日记