saurav_kalsoor

Sort By Reversing Digits - KOTLIN

Jan 25th, 2022
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Author : Saurav Kalsoor
  2. // Sort By Reversing Digits - KOTLIN
  3.  
  4. import java.util.*
  5.  
  6. var sc: Scanner = Scanner(System.`in`)
  7.  
  8. fun main() {
  9.     val n: Int = sc.nextInt()
  10.     val arr: ArrayList<Int> = ArrayList<Int>()
  11.     for (i in 0 until n) {
  12.         val input: Int = sc.nextInt()
  13.         arr.add(input)
  14.     }
  15.     val result: ArrayList<Int> = sortByDigits(arr)
  16.     for (i in 0 until n) print(result.get(i).toString() + " ")
  17.     println()
  18. }
  19.  
  20. fun sortByDigits(arr: ArrayList<Int>): java.util.ArrayList<Int> {
  21.     Collections.sort(arr, SortByReversingDigits())
  22.     return arr
  23. }
  24.  
  25. internal class SortByReversingDigits : Comparator<Int> {
  26.     override fun compare(a: Int, b: Int): Int {
  27.         val revA = reverseDigits(a)
  28.         val revB = reverseDigits(b)
  29.         return if (revA == revB) {
  30.             a - b
  31.         } else {
  32.             revA - revB
  33.         }
  34.     }
  35.  
  36.     fun reverseDigits(num: Int): Int {
  37.         var n = num
  38.         var rev = 0
  39.         while (n > 0) {
  40.             rev = rev * 10
  41.             rev = rev + n % 10
  42.             n = n / 10
  43.         }
  44.         return rev
  45.     }
  46. }
Add Comment
Please, Sign In to add comment