3945. 计算数字频率得分
题目描述
给你一个整数 n。
n 的 得分 定义为:对所有 不同 数字 d,计算 d * freq(d) 的总和,其中 freq(d) 表示数字 d 在 n 中出现的次数。
返回一个整数,表示 n 的得分。
示例 1:
输入: n = 122
输出: 5
解释:
- 数字 1 出现 1 次,贡献为
1 * 1 = 1。 - 数字 2 出现 2 次,贡献为
2 * 2 = 4。 - 因此,
n的得分为1 + 4 = 5。
示例 2:
输入: n = 101
输出: 2
解释:
- 数字 0 出现 1 次,贡献为
0 * 1 = 0。 - 数字 1 出现 2 次,贡献为
1 * 2 = 2。 - 因此,
n的得分为 2。
提示:
1 <= n <= 109
解法
方法一:模拟
题目相当于求一个数的各个位数字之和。我们可以通过不断取模和除以 10 来获取每一位的数字,并累加到答案中。
时间复杂度 \(O(\log n)\),其中 \(\log n\) 是数字 \(n\) 的位数。空间复杂度 \(O(1)\)。
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 4 5 6 | |
1 2 3 4 5 6 7 | |