本文主要是介绍每日一题 2578. 最小和分割(简单,模拟),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
思路:
- 拆分 num 的每一位数字,将他们排序。
- 最大的两个放在个位,其次两个放十位,以此类推。注意并不需要重新组合出 num1 和 num2 ,他只要和即可。
- 优化,可以不使用排序,因为只有 0 到 9 一共十个数字,只需要统计它们出现的次数,然后从 9 开始计算即可。
class Solution:def splitNum(self, num: int) -> int:l = []while num > 0:l.append(num % 10)num //= 10l.sort(reverse=True)ans = 0for i in range(len(l)):ans += l[i]*10**(i // 2)return ans
这篇关于每日一题 2578. 最小和分割(简单,模拟)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!