比如输入字符串"1234", 输出所有的不重复的24个组合:1234,1243,1324,1342,
输入字符串"123", 输出所有的不重复的9个组合:123,132,213,提示:
第一步:求出给定字符串的所有不重复组合数,比如"1234"的组合是24个,"123"是9个,"1233"是9个,
第二步:用到Hashtable和collections.shuffle()如果不用上面的提示用其它的方法也行
输入字符串"123", 输出所有的不重复的9个组合:123,132,213,提示:
第一步:求出给定字符串的所有不重复组合数,比如"1234"的组合是24个,"123"是9个,"1233"是9个,
第二步:用到Hashtable和collections.shuffle()如果不用上面的提示用其它的方法也行
import java.util.Collections;
import java.util.HashSet;
import java.util.Scanner;public class Ruader {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String sin = in.nextLine().replaceAll("[^0-9]", "");
while (sin.equals(""))
sin = in.nextLine().replaceAll("[^0-9]", "");
ArrayList<Character> ch = new ArrayList<Character>();
int setSize = 1;
for (int i = 0; i < sin.length(); i++) {
ch.add(sin.charAt(i));
setSize *= i + 1;
}
HashSet<String> set = new HashSet<String>();
while (set.size() < setSize) {
StringBuilder sb = new StringBuilder();
for (Character t : ch)
sb.append(t);
set.add(sb.toString());
Collections.shuffle(ch);
}
for (String t : set)
System.out.println(t);
}
}
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);String string = scanner.nextLine();
char[] chars = string.toCharArray();Set<Character> array = new HashSet<Character>();
for(int i=0;i<chars.length;i++){
array.add(chars[i]);
}
int total = array.size();
int sum = 1;
for(int i=1;i<=total;i++){
sum *= i;
}
System.out.println("SUM: " + sum);
}
}
我要分。。要分。。
public static ArrayList<String> getPP(String str) {
ArrayList<String> al1 = new ArrayList<String>();
if (str.length() == 1) {
al1.add(str);
} else {
for (int j = 0;j<str.length();j++) {
ArrayList<String> al2 = getPP(str.replace(str.substring(j,j+1),""));
for (int i = 0;i<al2.size();i++) {
al1.add(str.substring(j,j+1) + al2.get(i)); }
}
}return al1;
}
n!= n*(n-1)*(n-2)*....*2*1
输入任意一个数字,输出该数字各个位数上
数字的所有排列组合,要求不能有重复的组合
*/
class Display {
private ArrayList obj = new ArrayList();
private void display(StringBuffer temp, int length, char deleChar) { for (int i = 0; i < length; i++) {
StringBuffer tempdis = new StringBuffer(temp);
String element = tempdis.insert(i, deleChar).toString();
// System.out.print(element+" ");
boolean flag = false;
for (int j = 0; j < obj.size(); j++) {
if (obj.get(j).equals(element)) {
flag = true;
break;
}
}if (flag == false) {
obj.add(element);
}
}
}
private void displayElement(){
accept();
for(int i=0;i<obj.size();i++){
System.out.print(obj.get(i)+" ");
}
} public void accept() {
Scanner in = new Scanner(System.in);
String num = in.nextLine();
int length = num.length();
for (int i = 0; i < length; i++) {
StringBuffer temp = new StringBuffer(num);
char deleChar = temp.charAt(i);
temp.deleteCharAt(i);
display(temp, length, deleChar);
}
} public static void main(String[] args) {
Display dis = new Display();
dis.displayElement();
}
}