Skip to content

Commit 0dadeaa

Browse files
solve 2843: Count Symmetric Integers in java
1 parent 5af2af7 commit 0dadeaa

File tree

2 files changed

+34
-1
lines changed

2 files changed

+34
-1
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -852,7 +852,7 @@
852852
| 2828 | [Check if a String Is an Acronym of Words](https://leetcode.com/problems/check-if-a-string-is-an-acronym-of-words) | [![Java](assets/java.png)](src/CheckIfAStringIsAnAcronymOfWords.java) | |
853853
| 2833 | [Furthest Point From Origin](https://leetcode.com/problems/furthest-point-from-origin) | [![Java](assets/java.png)](src/FurthestPointFromOrigin.java) | |
854854
| 2839 | [Check if Strings Can be Made Equal With Operations I](https://leetcode.com/problems/check-if-strings-can-be-made-equal-with-operations-i) | [![Java](assets/java.png)](src/CheckIfStringsCanBeMadeEqualWithOperationsI.java) | |
855-
| 2843 | [Count Symmetric Integers](https://leetcode.com/problems/count-symmetric-integers) | | |
855+
| 2843 | [Count Symmetric Integers](https://leetcode.com/problems/count-symmetric-integers) | [![Java](assets/java.png)](src/CountSymmetricIntegers.java) | |
856856
| 2848 | [Points That Intersect With Cars](https://leetcode.com/problems/points-that-intersect-with-cars) | | |
857857
| 2855 | [Minimum Right Shifts to Sort the Array](https://leetcode.com/problems/minimum-right-shifts-to-sort-the-array) | | |
858858
| 2859 | [Sum of Values at Indices With K Set Bits](https://leetcode.com/problems/sum-of-values-at-indices-with-k-set-bits) | | |

src/CountSymmetricIntegers.java

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// https://leetcode.com/problems/count-symmetric-integers
2+
// T: O(N)
3+
// S: O(1)
4+
5+
public class CountSymmetricIntegers {
6+
public int countSymmetricIntegers(int low, int high) {
7+
int count = 0;
8+
for (int start = low ; start <= high ; start++) {
9+
final String number = start + "";
10+
if (isSymmetric(number)) {
11+
count++;
12+
}
13+
}
14+
return count;
15+
}
16+
17+
private static boolean isSymmetric(String number) {
18+
if (number.length() % 2 != 0) {
19+
return false;
20+
}
21+
final String firstHalf = number.substring(0, number.length() / 2);
22+
final String secondHalf = number.substring(number.length() / 2);
23+
return sumOfDigits(firstHalf) == sumOfDigits(secondHalf);
24+
}
25+
26+
private static int sumOfDigits(final String number) {
27+
int sum = 0;
28+
for (int i = 0 ; i < number.length() ; i++) {
29+
sum += number.charAt(i) - '0';
30+
}
31+
return sum;
32+
}
33+
}

0 commit comments

Comments
 (0)