集合list1存储倒数第二个元素(目标字符串),list2存储第二个字符串到倒数第三个元素(遍历比较的字符串),list3存储兄弟字符串,list4用来做中间集合为list1排序,排序不能影响list1,否则程序出错。
import java.util.*; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNextLine()){ int count=0; String s = sc.nextLine(); if(s.equals("")){ break; } String[] s1 = s.split(" "); int num=Integer.parseInt(s1[0]); char[] c1 = s1[s1.length - 2].toCharArray(); //System.out.println(c1); List<Character> list1 = new ArrayList<>(); for(int i=0;i<c1.length;i++){ list1.add(c1[i]); } //System.out.println(list1); List<String> list3 = new ArrayList<>(); List<Character> list2 = new ArrayList<>(); List<Character> list4 = new ArrayList<>(); for(int i=1;i<=num;i++) { for (int j = 0; j < s1[i].length();j++) { char[] c2 = s1[i].toCharArray(); list2.add(c2[j]); } //System.out.println(list2); //System.out.println(list2.size()); boolean flag = true; boolean flag2 = true; if(list1.size()==list2.size()){ for (int i1 = 0; i1 < list1.size(); i1++) { if (list1.get(i1) != list2.get(i1)) { flag=false; break; } } for (int i1 = 0; i1 < list1.size(); i1++) { list4.add(list1.get(i1)); } Collections.sort(list4); Collections.sort(list2); for (int i1 = 0; i1 < list4.size(); i1++) { if (list4.get(i1) != list2.get(i1)) { flag2 = false; break; } } if (flag == false && flag2 == true) { list3.add(s1[i]); //System.out.println(list3); count++; //System.out.println(count); } list4.clear(); } list2.clear(); } Collections.sort(list3); int num2 = Integer.parseInt(s1[s1.length - 1]); //System.out.println(num2); System.out.println(count); if (count != 0&&list3.size()>=num2) { System.out.println(list3.get(num2 - 1)); } list3.clear(); } } }