理解题目花费了点时间,按照要求来,利用相应数据结构的特性,本题的去重排序和按照顺序遍历的LinkedHashMap。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()){
int rn = sc.nextInt();
String[] st = new String[rn];
for(int i=0;i<rn;i++){
st[i] =sc.next();
}
int jn = sc.nextInt();
TreeSet<Integer> set = new TreeSet<Integer>();
for(int i=0;i< jn;i++){
set.add(sc.nextInt());
}
StringBuffer str = new StringBuffer();
Iterator<Integer> iterator = set.iterator();
while (iterator.hasNext()){
String e = iterator.next().toString();
str.append(getRes(e,st));
}
System.out.println(str.toString().split(" ").length+" "+str);
}
}
public static StringBuffer getRes(String e,String[] st){
StringBuffer res = new StringBuffer();
LinkedHashMap<Integer,String> map = new LinkedHashMap<Integer, String>();
for(int i=0;i<st.length;i++){
if(st[i].contains(e)){
map.put(i,st[i]);
}
}
if(map.size()>0)
res.append(e+" "+map.size()+" ");
for(Map.Entry entry : map.entrySet()){
res.append(entry.getKey()+" "+entry.getValue()+" ");
}
return res;
}
}



京公网安备 11010502036488号