SHOW:
|
|
- or go back to the newest paste.
1 | // Author : Saurav Kalsoor | |
2 | - | // Sort By Reversing Digits - JAVA |
2 | + | // Sort By Reversing Digits - KOTLIN |
3 | ||
4 | - | import java.util.*; |
4 | + | import java.util.* |
5 | ||
6 | - | public class Test { |
6 | + | var sc: Scanner = Scanner(System.`in`) |
7 | - | |
7 | + | |
8 | - | static Scanner sc = new Scanner(System.in); |
8 | + | fun main() { |
9 | - | public static void main(String[] args) { |
9 | + | val n: Int = sc.nextInt() |
10 | - | int n = sc.nextInt(); |
10 | + | val arr: ArrayList<Int> = ArrayList<Int>() |
11 | - | ArrayList<Integer> arr = new ArrayList<>(); |
11 | + | for (i in 0 until n) { |
12 | val input: Int = sc.nextInt() | |
13 | - | for(int i=0; i < n; i++) { |
13 | + | arr.add(input) |
14 | - | int input = sc.nextInt(); |
14 | + | |
15 | - | arr.add(input); |
15 | + | val result: ArrayList<Int> = sortByDigits(arr) |
16 | for (i in 0 until n) print(result.get(i).toString() + " ") | |
17 | println() | |
18 | - | ArrayList<Integer> result = sortByDigits(arr); |
18 | + | |
19 | - | |
19 | + | |
20 | - | for(int i=0; i < n; i++) |
20 | + | fun sortByDigits(arr: ArrayList<Int>): java.util.ArrayList<Int> { |
21 | - | System.out.print(result.get(i) + " "); |
21 | + | Collections.sort(arr, SortByReversingDigits()) |
22 | - | |
22 | + | return arr |
23 | - | System.out.println(); |
23 | + | |
24 | ||
25 | internal class SortByReversingDigits : Comparator<Int> { | |
26 | - | public static ArrayList<Integer> sortByDigits(ArrayList<Integer> arr){ |
26 | + | override fun compare(a: Int, b: Int): Int { |
27 | - | Collections.sort(arr, new SortByReversingDigits()); |
27 | + | val revA = reverseDigits(a) |
28 | - | return arr; |
28 | + | val revB = reverseDigits(b) |
29 | return if (revA == revB) { | |
30 | a - b | |
31 | } else { | |
32 | - | class SortByReversingDigits implements Comparator<Integer> { |
32 | + | revA - revB |
33 | - | |
33 | + | |
34 | - | public int compare(Integer a, Integer b){ |
34 | + | |
35 | ||
36 | - | int revA = reverseDigits(a), revB = reverseDigits(b); |
36 | + | fun reverseDigits(num: Int): Int { |
37 | - | if(revA == revB){ |
37 | + | var n = num |
38 | - | return a - b; |
38 | + | var rev = 0 |
39 | while (n > 0) { | |
40 | - | else{ |
40 | + | rev = rev * 10 |
41 | - | return revA - revB; |
41 | + | rev = rev + n % 10 |
42 | n = n / 10 | |
43 | } | |
44 | return rev | |
45 | - | public int reverseDigits(int n){ |
45 | + | |
46 | - | int rev = 0; |
46 | + | } |