-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCharacterFinder.java
More file actions
34 lines (30 loc) · 924 Bytes
/
CharacterFinder.java
File metadata and controls
34 lines (30 loc) · 924 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package dsa;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
public class CharacterFinder {
public char findFirstNonRepeatingCharacter(String string){
Map <Character, Integer> map = new HashMap<>();
char [] chars = string.toCharArray();
for (char c : chars) {
var count = map.containsKey(c) ? map.get(c) : 0;
map.put(c, count + 1);
}
for (char ch : chars) {
if(map.get(ch) == 1)
return ch;
}
return Character.MIN_VALUE;
}
public Character firstRepeatedCharacter(String string){
char [] chars = string.toCharArray();
Set<Character> set = new HashSet<>();
for (char c : chars) {
if(set.contains(c))
return c;
set.add(c);
}
return Character.MIN_VALUE;
}
}