Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Author : Saurav Kalsoor
- // Sort By Reversing Digits - KOTLIN
- import java.util.*
- var sc: Scanner = Scanner(System.`in`)
- fun main() {
- val n: Int = sc.nextInt()
- val arr: ArrayList<Int> = ArrayList<Int>()
- for (i in 0 until n) {
- val input: Int = sc.nextInt()
- arr.add(input)
- }
- val result: ArrayList<Int> = sortByDigits(arr)
- for (i in 0 until n) print(result.get(i).toString() + " ")
- println()
- }
- fun sortByDigits(arr: ArrayList<Int>): java.util.ArrayList<Int> {
- Collections.sort(arr, SortByReversingDigits())
- return arr
- }
- internal class SortByReversingDigits : Comparator<Int> {
- override fun compare(a: Int, b: Int): Int {
- val revA = reverseDigits(a)
- val revB = reverseDigits(b)
- return if (revA == revB) {
- a - b
- } else {
- revA - revB
- }
- }
- fun reverseDigits(num: Int): Int {
- var n = num
- var rev = 0
- while (n > 0) {
- rev = rev * 10
- rev = rev + n % 10
- n = n / 10
- }
- return rev
- }
- }
Add Comment
Please, Sign In to add comment