Skip to content

Commit 59679ca

Browse files
solves number of different integers in string
1 parent e8e2e11 commit 59679ca

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,7 @@
439439
| 1791 | [Find Center of Star Graph](https://leetcode.com/problems/find-center-of-star-graph) | [![Java](assets/java.png)](src/FindCenterOfStarGraph.java) | |
440440
| 1796 | [Second Largest Digit in a String](https://leetcode.com/problems/second-largest-digit-in-a-string) | [![Java](assets/java.png)](src/SecondLargestDigitInAString.java) | |
441441
| 1800 | [Maximum Ascending Subarray Sum](https://leetcode.com/problems/maximum-ascending-subarray-sum) | [![Java](assets/java.png)](src/MaximumAscendingSubArraySum.java) | |
442-
| 1805 | [Number of Different Integers in a String](https://leetcode.com/problems/number-of-different-integers-in-a-string) | | |
442+
| 1805 | [Number of Different Integers in a String](https://leetcode.com/problems/number-of-different-integers-in-a-string) | [![Java](assets/java.png)](src/NumberOfDifferentIntegersInString.java) | |
443443
| 1812 | [Determine Color of a Chessboard Square](https://leetcode.com/problems/determine-color-of-a-chessboard-square) | | |
444444
| 1816 | [Truncate Sentence](https://leetcode.com/problems/truncate-sentence) | | |
445445
| 1822 | [Sign of the Product of an Array](https://leetcode.com/problems/sign-of-the-product-of-an-array) | | |
+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import java.util.HashSet;
2+
import java.util.Set;
3+
4+
public class NumberOfDifferentIntegersInString {
5+
public int numDifferentIntegers(String word) {
6+
final Set<String> uniqueIntegers = integersInString(word);
7+
return uniqueIntegers.size();
8+
}
9+
10+
private Set<String> integersInString(String s) {
11+
final Set<String> integers = new HashSet<>();
12+
boolean inNumber = false;
13+
StringBuilder current = new StringBuilder();
14+
for (int index = 0 ; index < s.length() ; index++) {
15+
if (Character.isDigit(s.charAt(index))) {
16+
if (!inNumber) inNumber = true;
17+
current.append(s.charAt(index) == '0' && current.length() == 0 ? "" : s.charAt(index));
18+
if (index == s.length() - 1) integers.add(current.toString());
19+
} else if (inNumber) {
20+
inNumber = false;
21+
integers.add(current.toString());
22+
current = new StringBuilder();
23+
}
24+
}
25+
return integers;
26+
}
27+
}

0 commit comments

Comments
 (0)