您的位置:首页 > 其它

(1) 一个字符串,根据输入参数m,找出字符串的m个字符的所有字符串

2015-12-22 16:23 411 查看
/**
* 	有一个字符串,根据输入参数m,找出字符串的m个字符的所有字符串
例如:
String str ="abc", m=2  得到结果是 "ab" "ac" "bc"
String str ="abcd" , m=3 得到结果是"abc" "acd" "bcd" "abd"

注:程序摘自网上
*
*/


public static void main(String[] args) {
List<String> list = choose("abcde",3);
for (String string : list) {
System.out.println(string);
}
}

public static List<String> choose(String target, int m) {
List<String> resultList = new LinkedList<>();
doChoose(resultList, target, "", m, 0);
return resultList;
}

private static void doChoose(List<String> resultList, String target,
String resultStr, int m, int head) {

// 递归头
if (resultStr.length() == m) {
resultList.add(resultStr);
return;
}

// 递归体
for (int i = head; i < target.length(); i++) {
doChoose(resultList, target, resultStr + target.charAt(i), m, i + 1);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: