import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class 取字符 {
static List<List
> resultList = new ArrayList<List
>();
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
char[] c = s.toCharArray();
List
list = new ArrayList
();
for(int i = 0;i<3;i++){
list.add('0');
}
//System.out.println(list.size() + "list.size()");
findChar(c,list,3);
}
private static void findChar(char[] c, List
list,int n) { //System.out.println(c[0]); if(n<=0){ if(check(list)){ StringBuffer sb = new StringBuffer(); for(int i = 0;i<list.size();i++){ sb.append(list.get(i)); } System.out.println(sb.toString()); } return ; } for(int i = 0;i<c.length;i++){ if(!list.contains(c[i])){ list.set(list.size()-n, c[i]); }else{ continue; } findChar(c, list, n-1); list.set(list.size()-n, '0'); } } private static boolean check(List
list) { //System.out.println(list.toString()); boolean b = true ; List
list1 = new ArrayList
(); for(int i = 0;i<list.size();i++){ list1.add(list.get(i)); } Collections.sort(list1); for(int i = 0;i<resultList.size();i++){ if(resultList.get(i).equals(list1)){ b = false; break; } } resultList.add(list1); return b; } } 运行结果: abcd abc abd acd bcd 第二组: abcabd abc abd acd bcd
不同的取法输出顺序可以不考虑。取字符( 从标准输入读入一个由字母构成的串(不大于30个字符)。从该串中取出3个不重复的字符,求所有的取法。取出的字符,要求按字母升序排列成一个串。)
最新推荐文章于 2020-10-13 10:17:28 发布