Advertisement
conaldev

Big Sorting Hackerank by ConalDev

Jul 28th, 2020
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.12 KB | None | 0 0
  1. import java.io.*;
  2. import java.math.*;
  3. import java.security.*;
  4. import java.text.*;
  5. import java.util.*;
  6. import java.util.concurrent.*;
  7. import java.util.regex.*;
  8.  
  9. public class Solution {
  10.  
  11.     // Complete the bigSorting function below.
  12.     static String[] bigSorting(String[] unsorted) {
  13.             Arrays.sort(unsorted, new Comparator<String>(){//tạo một Comparator so sánh số String
  14.                 @Override
  15.                 public int compare(String s1, String s2){
  16.                     if(s1.length()!=s2.length()){//nếu độ dài 2 chuỗi length khác nhau trừ đi >0 s1 lớn hơn, <0 s1 nhỏ hơn
  17.                         return s1.length()-s2.length();
  18.                     }
  19.                     for(int i=0;i<s1.length();i++){// độ dài 2 chuỗi bằng nhau so sánh từng Char 1 theo bảng mã Ascii
  20.                         if(s1.charAt(i)!=s2.charAt(i))
  21.                             return s1.charAt(i)-s2.charAt(i);
  22.                     }
  23.                     return 0;//nếu 2 chuỗi số bằng nhau
  24.                 }
  25.             });    
  26.         return unsorted;
  27.     }
  28.  
  29.     private static final BufferedReader bReader = new BufferedReader(new InputStreamReader(System.in));
  30. //cách đọc bằng Scanner mặc định sẽ bị Time Out 1 test case. Ta phải sửa đọc bằng BufferedReader sẽ nhanh hơn
  31.     public static void main(String[] args) throws IOException {
  32.         BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));
  33.  
  34.         int n = Integer.parseInt(bReader.readLine());
  35.  
  36.         String[] unsorted = new String[n];
  37.  
  38.         for (int i = 0; i < n; i++) {
  39.             String unsortedItem = bReader.readLine();
  40.             unsorted[i] = unsortedItem;
  41.         }
  42.  
  43.         String[] result = bigSorting(unsorted);
  44.  
  45.         for (int i = 0; i < result.length; i++) {
  46.             bufferedWriter.write(result[i]);
  47.  
  48.             if (i != result.length - 1) {
  49.                 bufferedWriter.write("\n");
  50.             }
  51.         }
  52.  
  53.         bufferedWriter.newLine();
  54.  
  55.         bufferedWriter.close();
  56.  
  57.         bReader.close();
  58.     }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement