Recca Chao 的 gitHub page

推廣網站開發,包含 Laravel 和 Kotlin 後端撰寫、自動化測試、讀書心得等。Taiwan Kotlin User Group 管理員。

View on GitHub

Kotlin Leetcode - 3783. Mirror Distance of an Integer

題目連接:https://leetcode.com/problems/mirror-distance-of-an-integer/

class Solution {
    fun mirrorDistance(n: Int): Int {

    }
}

解題思路

這題主要考的是怎麼翻轉一個數字

我們可以用四則運算的方式

預先設置變數 rev,使用一個迴圈

每次迴圈 rev 乘以十,尾端加上原本數字的最後一位數

並將原本的數字除以十

num = 123, rev = 0
num = 12, rev = 0 + 3
num = 1, rev = 30 + 2
num = 0, rev=320 + 1

或者,我們可以直接將原本的數字轉成字串

然後使用字串的 reversed() 翻轉

最後轉回整數進行運算

Kotlin 參考解答

點擊展開解答

使用四則運算翻轉數字的方式如下

class Solution {
    fun mirrorDistance(n: Int): Int {
        var num = n
        var rev = 0
        while (num > 0) {
            rev = rev * 10 + num % 10
            num /= 10
        }
        return abs(n - rev)
    }
}

使用字串 reversed() 的方式如下

class Solution {
    fun mirrorDistance(n: Int) = abs(n - n.toString().reversed().toInt())
}