比如:现有A、B、C、D四个部门,共12人。现在排队ACBBDCAABAAA。那么找出的就是BDCA。
eg: 输入 ACBBDCAABAAA 输出 BDCA eg: 输入 ABCDEAC 输出 ABCDE
import java.util.*;
public class Main {
public static void main(String[] args) {
System.out.println("请输入大写字母的任意排列组合:");
Scanner input = new Scanner(System.in);
String x = input.next();
Main ss = new Main();
ss.sort(x);
}
public void sort(String x) {
char res[] = x.toCharArray();
if(res.length == 0)
System.out.print("输入不符合要求");
if(res.length == 1)
System.out.print(x);//输入单个字母
else {
int max[] = new int[res.length];//记录第i个字母开头满足条件的字符串长度
for(int arr=0;arr<res.length;arr++) {
max[arr] = 1;
}
//
for(int i=0;i<res.length;i++) {
boolean trag = true;
for(int j=i+1;j<res.length;j++) {
for(int p=i;p<j;p++) {//判断第j个能否加入到前面的字符串中去
if(res[p] == res[j]) {
trag = false;
break;}
}
if(trag) { max[i]++; }
}
}
//
int q = 0;
for(int p=0;p<res.length;p++) {
if(max[p]>max[q])
q = p;
}
for(int k=0;k<max[q];k++) {
System.out.print(res[q+k]);
}
}
}
}