Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 6850936

Browse files
committedMay 27, 2023
solves #2273: Find Resultant Array After Removing Anagrams in java
1 parent 1e5817e commit 6850936

File tree

2 files changed

+34
-1
lines changed

2 files changed

+34
-1
lines changed
 

‎README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -735,7 +735,7 @@
735735
| 2259 | [Remove Digit From Number to Maximize Result](https://leetcode.com/problems/remove-digit-from-number-to-maximize-result) | [![Java](assets/java.png)](src/RemoveDigitFromNumberToMaximizeResult.java) | |
736736
| 2264 | [Largest 3-Same-Digit Number in String](https://leetcode.com/problems/largest-3-same-digit-number-in-string) | [![Java](assets/java.png)](src/Largest3SameDigitNumberInString.java) | |
737737
| 2269 | [Find the K-Beauty of a Number](https://leetcode.com/problems/find-the-k-beauty-of-a-number) | [![Java](assets/java.png)](src/FindTheKBeautyOfANumber.java) | |
738-
| 2273 | [Find Resultant Array After Removing Anagrams](https://leetcode.com/problems/find-resultant-array-after-removing-anagrams) | | |
738+
| 2273 | [Find Resultant Array After Removing Anagrams](https://leetcode.com/problems/find-resultant-array-after-removing-anagrams) | [![Java](assets/java.png)](src/FindResultantArrayAfterRemovingAnagrams.java) | |
739739
| 2278 | [Percentage of Letter in String](https://leetcode.com/problems/percentage-of-letter-in-string) | | |
740740
| 2283 | [Check if Number Has Equal Digit Count and Digit Value](https://leetcode.com/problems/check-if-number-has-equal-digit-count-and-digit-value) | | |
741741
| 2287 | [Rearrange Characters to Make Target String](https://leetcode.com/problems/rearrange-characters-to-make-target-string) | | |
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// https://leetcode.com/problems/find-resultant-array-after-removing-anagrams
2+
// T: O(|words| * |words[i]|)
3+
// S: O(|words[i]|)
4+
5+
import java.util.ArrayList;
6+
import java.util.HashMap;
7+
import java.util.List;
8+
import java.util.Map;
9+
10+
public class FindResultantArrayAfterRemovingAnagrams {
11+
public List<String> removeAnagrams(String[] words) {
12+
final List<String> result = new ArrayList<>();
13+
result.add(words[0]);
14+
Map<Character, Integer> wordSignature = getCharacterFrequencies(words[0]);
15+
for (int index = 1 ; index < words.length ; index++) {
16+
final String word = words[index];
17+
final Map<Character, Integer> wordCharFrequencies = getCharacterFrequencies(word);
18+
if (!wordCharFrequencies.equals(wordSignature)) {
19+
result.add(word);
20+
wordSignature = wordCharFrequencies;
21+
}
22+
}
23+
return result;
24+
}
25+
26+
private Map<Character, Integer> getCharacterFrequencies(String string) {
27+
final Map<Character, Integer> result = new HashMap<>();
28+
for (int index = 0 ; index < string.length() ; index++) {
29+
result.put(string.charAt(index), result.getOrDefault(string.charAt(index), 0) + 1);
30+
}
31+
return result;
32+
}
33+
}

0 commit comments

Comments
 (0)