從標準輸入讀入一個由字母構成的串(不大於30個字符)。
從該串中取出3個不重複的字符,求全部的取法。
取出的字符,要求按字母升序排列成一個串。
不一樣的取法輸出順序能夠不考慮。
例如:
輸入:
abc
則輸出:
abc
輸入:
abcd
則輸出:
abc
abd
acd
bcd
輸入:
abcaa
則輸出:
abc
java
import java.util.Scanner; import java.util.Vector; public class 三個不重複數 { /** * @param args */ private static Scanner in = new Scanner(System.in); private static String str = null; private static StringBuilder str_b = new StringBuilder(); private static StringBuilder str_b1 = new StringBuilder(); public static void input(){ str = in.nextLine(); } public static void process(){ str_b.append(str.charAt(0)); for(int i=1;i<str.length();i++){ int j=0; char c = str.charAt(i); for(j=0;j<str_b.length();j++){ if(c==str_b.charAt(j)) break; } if(j==str_b.length()) str_b.append(c); } for(int k=0;k<str_b.length()-2;k++){ for(int m=k+1;m<str_b.length()-1;m++){ for(int n=m+1;n<str_b.length();n++){ str_b1.append(str_b.charAt(k)).append(str_b.charAt(m)).append(str_b.charAt(n)); printString(str_b1); str_b1.delete(0,str_b1.length()); } } } } public static void printString(StringBuilder str){ int min = 0; for(int i=1;i<3;i++){ if(str.charAt(i)<str.charAt(min)) min=i; } char c = str.charAt(0); str.setCharAt(0, str.charAt(min)); str.setCharAt(min,c); if(str.charAt(1)>str.charAt(2)){ c = str.charAt(1); str.setCharAt(1, str.charAt(2)); str.setCharAt(2,c); } System.out.println(str.toString()); } public static void main(String[] args) { // TODO Auto-generated method stub input(); process(); } }