You are given two positive integers low and high.
An integer x consisting of 2 * n digits is symmetric if the sum of the first n digits of x is equal to the sum of the last n digits of x. Numbers with an odd number of digits are never symmetric.
Return the number of symmetric integers in the range [low, high].
Example 1:
Input: low = 1, high = 100 Output: 9 Explanation: There are 9 symmetric integers between 1 and 100: 11, 22, 33, 44, 55, 66, 77, 88, and 99.
Example 2:
Input: low = 1200, high = 1230 Output: 4 Explanation: There are 4 symmetric integers between 1200 and 1230: 1203, 1212, 1221, and 1230.
Constraints:
1 <= low <= high <= 104class Solution {
public int countSymmetricIntegers(int low, int high) {
int count = 0;
for (int i = low; i <= high; i++)
if (isSymmetric(i))
count++;
return count;
}
private boolean isSymmetric(int x) {
int len = (int) Math.log10(x) + 1, sum = 0;
if ((len & 1) == 1)
return false;
for (int i = 0; i < len / 2; i++) {
sum += x % 10;
x /= 10;
}
for (int i = len / 2; i < len; i++) {
sum -= x % 10;
x /= 10;
}
return (sum == 0);
}
}class Solution {
public int countSymmetricIntegers(int low, int high) {
int count = 0;
for (int i = low; i <= high; i++)
if (isSymmetric(i))
count++;
return count;
}
private boolean isSymmetric(int x) {
String s = String.valueOf(x);
int len = s.length(), sum = 0;
if ((len & 1) == 1)
return false;
for (int i = 0; i < len / 2; i++)
sum += s.charAt(i) - s.charAt(len - 1 - i);
return (sum == 0);
}
}class Solution {
public int countSymmetricIntegers(int low, int high) {
int count = 0;
for (int i = low; i <= high; i++)
if (isSymmetric(i))
count++;
return count;
}
private boolean isSymmetric(int x) {
String s = String.valueOf(x);
int len = s.length(), sum = 0;
if ((len & 1) == 1)
return false;
for (int i = 0; i < len / 2; i++)
sum += s.charAt(i) - s.charAt(len - 1 - i);
return (sum == 0);
}
}class Solution {
public int countSymmetricIntegers(int low, int high) {
int count = 0;
for (int i = low; i <= high; i++)
if (isSymmetric(i))
count++;
return count;
}
private boolean isSymmetric(int x) {
int len = (int) Math.log10(x) + 1, sum = 0;
if ((len & 1) == 1)
return false;
for (int i = 0; i < len / 2; i++) {
sum += x % 10;
x /= 10;
}
for (int i = len / 2; i < len; i++) {
sum -= x % 10;
x /= 10;
}
return (sum == 0);
}
}