LeetCode in Kotlin

3602. Hexadecimal and Hexatrigesimal Conversion

Easy

You are given an integer n.

Return the concatenation of the hexadecimal representation of n2 and the hexatrigesimal representation of n3.

A hexadecimal number is defined as a base-16 numeral system that uses the digits 0 – 9 and the uppercase letters A - F to represent values from 0 to 15.

A hexatrigesimal number is defined as a base-36 numeral system that uses the digits 0 – 9 and the uppercase letters A - Z to represent values from 0 to 35.

Example 1:

Input: n = 13

Output: “A91P1”

Explanation:

Example 2:

Input: n = 36

Output: “5101000”

Explanation:

Constraints:

Solution

class Solution {
    fun concatHex36(n: Int): String {
        var t = n * n
        var k: Int
        val st = StringBuilder()
        var tmp = StringBuilder()
        while (t > 0) {
            k = t % 16
            t = t / 16
            if (k <= 9) {
                tmp.append(('0'.code + k).toChar())
            } else {
                tmp.append(('A'.code + (k - 10)).toChar())
            }
        }
        for (i in tmp.length - 1 downTo 0) {
            st.append(tmp[i])
        }
        tmp = StringBuilder()
        t = n * n * n
        while (t > 0) {
            k = t % 36
            t = t / 36
            if (k <= 9) {
                tmp.append(('0'.code + k).toChar())
            } else {
                tmp.append(('A'.code + (k - 10)).toChar())
            }
        }
        for (i in tmp.length - 1 downTo 0) {
            st.append(tmp[i])
        }
        return st.toString()
    }
}