Skip to content

Commit f852c6f

Browse files
solves check if all chars have same frequency
1 parent e9efa51 commit f852c6f

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,7 @@
466466
| 1929 | [Concatenation of Array](https://leetcode.com/problems/concatenation-of-array) | [![Java](assets/java.png)](src/ConcatenationOfArray.java) | |
467467
| 1933 | 🔒 [Check If String Is Decomposable Into Value EqualSubstrings](https://leetcode.com/problems/check-if-string-is-decomposable-into-value-equal-substring) | | |
468468
| 1935 | [Maximum Number of Words You Can Type](https://leetcode.com/problems/maximum-number-of-words-you-can-type) | [![Java](assets/java.png)](src/MaximumNumberOfWordsYouCanType.java) | |
469-
| 1941 | [Check if All Characters Have Equal Number of Occurrences](https://leetcode.com/problems/check-if-all-characters-have-equal-number-of-occurrences) | | |
469+
| 1941 | [Check if All Characters Have Equal Number of Occurrences](https://leetcode.com/problems/check-if-all-characters-have-equal-number-of-occurrences) | [![Java](assets/java.png)](src/CheckIfAllCharactersHaveEqualNumberOfOccurrences.java) | |
470470
| 1945 | [Sum of Digits of String After Convert](https://leetcode.com/problems/sum-of-digits-of-string-after-convert) | | |
471471
| 1952 | [Three Divisors](https://leetcode.com/problems/three-divisors) | | |
472472
| 1957 | [Delete Characters to Make Fancy String](https://leetcode.com/problems/delete-characters-to-make-fancy-string) | | |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// https://leetcode.com/problems/check-if-all-characters-have-equal-number-of-occurrences
2+
// T: O(|s|)
3+
// S: O(1)
4+
5+
import java.util.HashMap;
6+
import java.util.Map;
7+
8+
public class CheckIfAllCharactersHaveEqualNumberOfOccurrences {
9+
public boolean areOccurrencesEqual(String s) {
10+
final Map<Character, Integer> charFrequencies = getCharacterFrequencies(s);
11+
int commonFrequency = charFrequencies.get(s.charAt(0));
12+
for (int frequency : charFrequencies.values()) {
13+
if (frequency != commonFrequency) return false;
14+
}
15+
return true;
16+
}
17+
18+
private Map<Character, Integer> getCharacterFrequencies(String s) {
19+
final Map<Character, Integer> characterFrequencies = new HashMap<>();
20+
for (int i = 0 ; i < s.length() ; i++) {
21+
characterFrequencies.put(s.charAt(i), characterFrequencies.getOrDefault(s.charAt(i), 0) + 1);
22+
}
23+
return characterFrequencies;
24+
}
25+
}

0 commit comments

Comments
 (0)