View difference between Paste ID: nMhEL4wW and SF09E7Rf
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+
}