forked from anishLearnsToCode/leetcode-algorithms
-
Notifications
You must be signed in to change notification settings - Fork 0
/
DecodeTheMessage.java
35 lines (30 loc) · 1.11 KB
/
DecodeTheMessage.java
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
35
// https://leetcode.com/problems/decode-the-message
// T: O(|key| + |message|)
// S: O(1)
import java.util.HashMap;
import java.util.Map;
public class DecodeTheMessage {
public String decodeMessage(String key, String message) {
final Map<Character, Character> mapping = getSubstitutionMap(key);
final StringBuilder result = new StringBuilder();
System.out.println(mapping);
for (int index = 0 ; index < message.length() ; index++) {
if (message.charAt(index) == ' ') {
result.append(' ');
} else {
result.append(mapping.get(message.charAt(index)));
}
}
return result.toString();
}
private Map<Character, Character> getSubstitutionMap(String key) {
final Map<Character, Character> result = new HashMap<>();
char letter = 'a';
for (int index = 0 ; index < key.length() ; index++) {
if (!result.containsKey(key.charAt(index)) && key.charAt(index) != ' ') {
result.put(key.charAt(index), letter++);
}
}
return result;
}
}