62,620
社区成员
发帖
与我相关
我的任务
分享import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int len = sc.nextInt();
//sc.nextLine();
String[] arr = new String[len];
for(int i=0;i<len;i++){
String tmp = sc.next();
while(f1(arr, tmp, i, true)){tmp = sc.next();}
arr[i] = tmp;
}
//f2(arr);
len = sc.nextInt();//sc.nextLine();
String[] ar2 = new String[len];
for(int i=0;i<len;i++){
String tmp = sc.next();
while(f1(ar2, tmp, i, false)){tmp = sc.next();}
ar2[i] = tmp;
}
for(String i:ar2){
String[] ret = new String[arr.length];
int tmp=0;
for(String j:arr){
if(j.startsWith(i)){
ret[tmp]=j;tmp++;
if(tmp >7)
break;
}
}
if(ret[0]==null)
System.out.println(i);
else{
quickSort(ret, 0, tmp-1);
Boolean out= false;
for(int z=0;z<tmp;z++){
if(out)
System.out.print(" ");
System.out.print(ret[z]);
out = true;
}
System.out.println();
}
}
}
public static Boolean f1(String[] arg, String a, int len, Boolean check){
if(len==0)
return false;
if(a.length()==0 || a.length()>20)
return true;
if(check)
for(int i=0;i<len;i++){
if(arg[i].equals(a))
return true;
}
return false;
}
public static void f2(String[] arg){
for(String i:arg)
System.out.println(i);
}
public static void quickSort(String[] strDate,int left,int right){
String middle,tempDate;
int i,j;
i=left;
j=right;
middle=strDate[(i+j)/2];
do{
while(strDate[i].compareTo(middle)<0&& i<right)
i++; //找出左边比中间值大的数
while(strDate[j].compareTo(middle)>0&& j>left)
j--; //找出右边比中间值小的数
if(i<=j){ //将左边大的数和右边小的数进行替换
tempDate=strDate[i];
strDate[i]=strDate[j];
strDate[j]=tempDate;
i++;
j--;
}
}while(i<=j); //当两者交错时停止
if(i<right){
quickSort(strDate,i,right);//从
}
if(j>left){
quickSort(strDate,left,j);
}
}
}
