2843. 统计对称整数的数目
发表于更新于
字数总计:326阅读时长:1分钟 重庆
2843. 统计对称整数的数目
题目
给你两个正整数 low 和 high 。
对于一个由 2 * n 位数字组成的整数 x ,如果其前 n 位数字之和与后 n 位数字之和相等,则认为这个数字是一个对称整数。
返回在 [low, high] 范围内的 对称整数的数目 。
示例 1:
1 2 3
| 输入:low = 1, high = 100 输出:9 解释:在 1 到 100 范围内共有 9 个对称整数:11、22、33、44、55、66、77、88 和 99 。
|
示例 2:
1 2 3
| 输入:low = 1200, high = 1230 输出:4 解释:在 1200 到 1230 范围内共有 4 个对称整数:1203、1212、1221 和 1230 。
|
提示:
思路
因为数字是由 2 * n 位数字组成的整数 x,因此直接截取数字的前n位和后n位,然后再比较前n位和与后n位和相等的个数即可。
完整代码

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class Solution { public int countSymmetricIntegers(int low, int high) { int res = 0; for (int i = low; i <= high; i++) { String str = String.valueOf(i); int len = str.length(); if (len % 2 != 0) continue; int half = len / 2; int leftSum = 0; int rightSum = 0; for (int j = 0; j < half; j++) leftSum += str.charAt(j) - '0'; for (int j = half; j < len; j++) rightSum += str.charAt(j) - '0'; if (leftSum == rightSum) res++; } return res; } }
|


Re-xy
正在运行...
本文遵循 CC BY-NC-SA 4.0 许可协议