import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Zuhe {
//全局变量,存储所有字符组合
List<Object> list = new ArrayList<Object>();
public void getNext(String begin, String[] s, int num) {
if (num > 1) {
for (int i = 0; i < s.length - num+1; i++) {
//取出一个字符
String str = s[i];
//数组后边的元素组成新数组
String[] newS = Arrays.copyOfRange(s, i + 1, s.length);
//递归,从后面的n-1个数种选出num-1个
getNext(begin == null ? str : (begin + "-" + str), newS,num - 1);
}
} else {
//如果从剩下的s中选出1个数,那么前缀依次和s中的所有元素组合一次
for (int b = 0; b < s.length; b++) {
list.add(begin + "-" + s[b]);
}
}
}
/**
* @param args
* Administrator 2013-4-23 下午2:15:43
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] str = { "a", "b", "c", "d", "e", "f", };
Zuhe z = new Zuhe();
z.getNext(null, str, 3);
System.out.println(z.list);
}
相关推荐
实现从M个字符中选择N个字符的递归程序!
传入一个字符串和整数m,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串并打印出来。
从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树并将它存于文件hfmTree中.将已在内存中的哈夫曼树以直观的方式(比如树)显示在终端上; 2.利用已经建好的哈夫曼树(如不在内存,则从文件htmTree中读入...
定义宏指令MOVE, 使它能将N个字符从一个字符区(首地址为AAA)传送到另一个字符区(首地址为BBB)。 如: N EQU 25 AAA DB ‘ABCDEFGHIJKLMN1234567890’ BBB DB N DUP(?) 则:宏指令MOVE AAA,N,BBB 能实现些功能...
C语言程序设计-编写函数fun(str,i,n),从字符串str中删除第i个字符开始的连续n个字符(注意str[0]代表字符串的第一个字符);.c
输入一个字符串t和一个正整数m,将字符串t中从第m个字符开始的全部字符复制到字符串s中,再输出字符串s。要求用字符指针定义并调用函数strmcpy(s,t,m),它的功能是将字符串t中从第m个字符开始的全部字符复制到字符串...
NULL 博文链接:https://gaoquanyang.iteye.com/blog/1522697
请编写函数fun,,函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。函数fun中给出的语句仅供参考。 例如,字符串数组中的M个字符串为 AAAA BBBBBBB CC 则合并后...
生成n个字符的脚本,可以生成n个字符。生成n个字符的脚本,可以生成n个字符
在输入大量单词时找出出现单词次数最多的那个单词,如果出现一样多,则是最后一个
有一个共N个字符的字符串,存放在buff的存储区中,在字符串中查找“空格”(ASCII码为20h)字符,找到则在屏幕上输出FOUND!,没有找到则输出NOT FOUND!。
简单的实现,代码很短。...输入一个字符串,输出它的字符的所有组合的情况 如输入“abc”,则输出abc,acb,bac,bca,cab,cba。 但如果输入“aba”,即有重复的,也会输出aba,aab,baa,baa,aba,aab。
c#字符串函数练习题,提供一个函数,将用户提供的一个字符串重复n遍,形成一个新的字符串,列如:一个字符串为ABC123重复两遍为ABC123ABC123 此程序使用vs2015c#控制台应用程序平台写的,希望可以帮助你!
编写一个applet程序,在窗口界面中实现当输入一个字符串和一个字符后,原字符串中所有该字符将被删除并显示出结果
java JAVA数组与字符串,编写图形界面的程序,接收用户输入的一个字符串和一个字符,将字符串中出现的所有该字符删除,打印新生成的字符串。 String 类或StringBuffer类 deleteCharAt方法
基于C# 实现的组合算法,可实现对任意类型的数据进行n选m的组合, 比如数字,字符串,对象等。 n必须大于0小于Int.MaxValue
# 给你一个字符串a和一个正整数n,判断a中是否存在长度为n的回文子串。 # 如果存在,则输出YES,否则输出NO。 # 回文串的定义:记串str逆序之后的字符串是str1,若str=str1,则称str是回文串,如"abcba". # 输入...
P省感染分布情况地图是一个N*M的矩形,地图上的每个点有三种状态未感染、被感染和被保护,分别用大写字母O,X,P表示,实现输入一个地图和经历的病毒周期数,推算出经历了这些病毒周期后的新地图
设置一个存储区,从键盘输入n(n)个字符并送入存储区,一回车符为结束输入,然后依次从存储区逐个取出在显示器上输入
已知一个字符串的长度,剔除其中所有的空格字符。请从字符串最后一个字符开始逐个向前判断、并进行处理。