理解题目花费了点时间,按照要求来,利用相应数据结构的特性,本题的去重排序和按照顺序遍历的LinkedHashMap。
数据分类处理
http://www.nowcoder.com/questionTerminal/9a763ed59c7243bd8ab706b2da52b7fd
理解题目花费了点时间,按照要求来,利用相应数据结构的特性,本题的去重排序和按照顺序遍历的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; } }