fork download
  1. import java.util.Scanner;
  2. import java.util.Arrays;
  3.  
  4. // 注意类名必须为 Main, 不要有任何 package xxx 信息
  5. public class Main {
  6. public static void main(String[] args) {
  7. Scanner in = new Scanner(System.in);
  8. String[] str = in.nextLine().split(" ");
  9. // for(String s:str) System.out.printf("%s\n",s);
  10. if (str.length == 1 && str[0]=="#"){
  11. System.out.println();
  12. return ;
  13. }
  14. String last = str[str.length - 1];
  15. str[str.length - 1] = last.substring(0, last.length() - 1);
  16. Arrays.sort(str, (s1, s2)->s2.length() - s1.length());
  17. for(String s:str) System.out.printf("%s\n",s);
  18. int i = 1;
  19. while(i<str.length){
  20. String cur=str[i];
  21. String pre=str[i-1];
  22. // System.out.printf("cur=%s,pre=%s,i=%d\n",cur,pre,i);
  23. if(pre.length()==cur.length()){
  24. int start=i-1;
  25. int end=i+1;
  26. while(end<str.length && str[end].length()==str[start].length()){
  27. end++;
  28. }
  29. Arrays.sort(str,start,end,(s1,s2)->(new StringBuilder(s1)).reverse().toString().compareTo((new StringBuilder(s2)).reverse().toString()));
  30. i=end-1;
  31. }
  32. i++;
  33. }
  34. StringBuilder res=new StringBuilder();
  35. for (String s : str) res.append(s).append(" ");
  36. System.out.printf(res.substring(0,res.length()-1).toString());
  37. }
  38.  
  39. }
Success #stdin #stdout 0.18s 56608KB
stdin
 a foxy man jumped over a dog#
stdout
jumped
foxy
over
man
dog
a
a

jumped over foxy dog man a a