统计对称整数的数目

给你两个正整数 low 和 high 。
对于一个由 2 * n 位数字组成的整数 x ,如果其前 n 位数字之和与后 n 位数字之和相等,则认为这个数字是一个对称整数。
返回在 [low, high] 范围内的 对称整数的数目 。

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var countSymmetricIntegers = function(low, high) {
let ans = 0;
for(let i = low; i <= high; i++) {
let str = String(i);
if(str.length % 2 == 0) {
let half = str.length / 2;
let sum = 0, _sum = 0;
for(let i = 0; i < half; i++) {
sum += +str[i];
_sum += +str[i+half];
}
if(sum == _sum) ans++;
}
}
return ans;
};