从ABCDE中取出三个的可能结果
1 public class 从ABCDE中取出三个的可能结果 { 2 // 从ABCDE中取出三个的可能结果(不进行排列) 3 static List f(String s, int k) { 4 List lis = new Vector(); 5 if (k == 0) { 6 lis.add(""); 7 return lis; 8 9 } 10 for (int i = 0; i < s.length(); i++) { 11 char x = s.charAt(i); // 取出字母 12 List t = f(s.substring(i + 1), k - 1);// 递归调用 取子串 13 for (int m = 0; m < t.size(); m++) { 14 lis.add("" + x + t.get(m)); 15 } 16 } 17 return lis; 18 } 19 20 public static void main(String[] args) { 21 String s = "ABCDE"; 22 List list = f(s, 3); 23 for (int i = 0; i < list.size(); i++) { // 输出可能结果 24 System.out.println(list.get(i)); 25 } 26 } 27 28 }
人生苦短,及时行乐