-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCoding.java
40 lines (35 loc) · 1.07 KB
/
Coding.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
36
37
38
39
40
import java.util.HashMap;
public class Coding {
String givenString;
public String decodedString;
HashMap<Character, String> characterToCode;
HashMap<String, Character> codeToCharacter;
public Coding(String org, HashMap<String, Character> codeCharacter, HashMap<Character, String> characterCode) {
givenString = org;
characterToCode = characterCode;
codeToCharacter = codeCharacter;
}
public String encode() {
StringBuilder sb = new StringBuilder();
Character character;
for (int i = 0; i < givenString.length(); i++) {
character = givenString.charAt(i);
sb.append(characterToCode.get(character));
}
String encodedString = sb.toString();
return encodedString;
}
public String decode(String encodedString) {
StringBuilder sb = new StringBuilder();
String t = "";
for (int i = 0; i < encodedString.length(); i++) {
t += encodedString.charAt(i);
if (codeToCharacter.get(t) != null) {
sb.append(codeToCharacter.get(t));
t = "";
}
}
decodedString = sb.toString();
return decodedString;
}
}