Medium
You are given two positive integers num and sum.
A positive integer n is good if it satisfies both of the following:
n is exactly num.n is exactly sum.The score of a good integer n is the sum of the squares of digits in n.
Return a string denoting the good integer n that achieves the maximum score. If there are multiple possible integers, return the maximum one. If no such integer exists, return an empty string.
Example 1:
Input: num = 2, sum = 3
Output: “30”
Explanation:
There are 3 good integers: 12, 21, and 30.
12 + 22 = 5.22 + 12 = 5.32 + 02 = 9.The maximum score is 9, which is achieved by the good integer 30. Therefore, the answer is "30".
Example 2:
Input: num = 2, sum = 17
Output: “98”
Explanation:
There are 2 good integers: 89 and 98.
82 + 92 = 145.92 + 82 = 145.The maximum score is 145. The maximum good integer that achieves this score is 98. Therefore, the answer is "98".
Example 3:
Input: num = 1, sum = 10
Output: “”
Explanation:
There are no integers that have exactly 1 digit and whose digits sum to 10. Therefore, the answer is "".
Constraints:
1 <= num <= 2 * 1051 <= sum <= 2 * 106class Solution {
fun maxSumOfSquares(places: Int, sum: Int): String {
var ans = ""
val nines = sum / 9
if (places < nines) {
return ans
} else if (places == nines) {
val remSum = sum - nines * 9
if (remSum > 0) {
return ans
}
ans = "9".repeat(nines)
} else {
val remSum = sum - nines * 9
ans = "9".repeat(nines) + remSum
val extra = places - ans.length
if (extra > 0) {
ans = ans + ("0".repeat(extra))
}
}
return ans
}
}