按要求操作


题:
从键盘读入一个由字母构成的串(不大于30个字符)。
从该串中取出3个不重复的字符,求所有的取法。
取出的字符,要求按字母升序排列成一个串。
不同的取法输出顺序可以不考虑。
例如:
输入:
abc
则输出:
abc

输入:
abcd
则输出:
abc
abd
acd
bcd

输入:
abcaa
则输出:
abc

源码Permutation.java


import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;

public class Permutation {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Input <31 chars");
        String s = sc.nextLine();
        while (s.length()>30) {
            System.out.println("Re-enter");
            s = sc.nextLine();
        }
        sc.close();
        String[] x = s.split("");
        Set<String> t = new TreeSet<String>();
        for (int i=0; i&lt;x.length; i++) {
            t.add(x[i]);
        }
        Iterator&lt;String> c = t.iterator();
        ArrayList&lt;String> a = new ArrayList&lt;String>();
        while (c.hasNext()) {
            a.add(c.next());
        }
        int z = a.size();
        for (int i=0; i&lt;z; i++) {
            for (int j=i+1; j&lt;z; j++) {
                for (int k=j+1; k&lt;z; k++) {
                    System.out.println(a.get(i)+a.get(j)+a.get(k));
                }
            }
        }
    }
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注