. - 力扣(LeetCode) 参考大神的答案与理解 from collections import Counter from math import log10 from typing import List class Solution: def sumDigitDifferences(self, nums: List[int]) -> int: n = len(nums) m = int(log10(nums[0])) + 1 # 算出整数有多少位 ans = 0 for _ in range(m): cnt = Counter() # 创建一个统计出现次数的字典 for i, x in enumerate(nums): nums[i], y = divmod(x, 10) # 整除取余,并且将商数赋值给nums中的自己本身 cnt[y] += 1 # 统计各个数字出现的次数 ans += sum(v * (n - v) for v in cnt.values()) // 2 # 计算每个不同数位差的和 return ans Solution().sumDigitDifferences([13, 23, 12])