统计对称整数的数目

姜智浩 Lv4

题目

给你两个正整数 low 和 high 。

对于一个由 2 * n 位数字组成的整数 x ,如果其前 n 位数字之和与后 n 位数字之和相等,则认为这个数字是一个对称整数。

返回在 [low, high] 范围内的 对称整数的数目 。

示例 1:

输入:low = 1, high = 100
输出:9
解释:在 1 到 100 范围内共有 9 个对称整数:11、22、33、44、55、66、77、88 和 99 。
示例 2:

输入:low = 1200, high = 1230
输出:4
解释:在 1200 到 1230 范围内共有 4 个对称整数:1203、1212、1221 和 1230 。

提示:
1 <= low <= high <= 104

解答

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution(object):
def countSymmetricIntegers(self, low, high):
count = 0
for i in range(low, high + 1):
if i > 0 and i < 100:
if i % 11 == 0:
count += 1
if i > 1000 and i < 10000:
left = i // 1000 + i // 100 % 10
right = i // 10 % 10 + i % 10
if left == right:
count += 1
return count

知识点

如何取出4位数中的各个位数
以2357为例
2 = 2357 // 1000
3 = 2357 // 100 % 10
5 = 2357 // 10 % 10
7 = 2357 % 10

  • Title: 统计对称整数的数目
  • Author: 姜智浩
  • Created at : 2025-04-11 11:45:14
  • Updated at : 2025-04-11 08:09:19
  • Link: https://super-213.github.io/zhihaojiang.github.io/2025/04/11/20250411统计对称整数的数目/
  • License: This work is licensed under CC BY-NC-SA 4.0.
On this page
统计对称整数的数目