Skip to content

Commit 8f76d72

Browse files
committed
encode and decode strings solution
1 parent 916d082 commit 8f76d72

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import java.util.*;
2+
3+
// TC: O(n)
4+
// SC: O(n)
5+
class Solution {
6+
7+
private static final String DELIMITER = ",";
8+
9+
// ["mydata"] -> "6,mydata"
10+
public String encode(List<String> strs) {
11+
StringBuilder sb = new StringBuilder();
12+
for (String s : strs) {
13+
sb.append(s.length()).append(DELIMITER).append(s);
14+
}
15+
return sb.toString();
16+
}
17+
18+
// "6,mydata" -> ["mydata"]
19+
public List<String> decode(String str) {
20+
List<String> answer = new ArrayList<>();
21+
22+
int cursor = 0;
23+
while (cursor < str.length()) {
24+
int indexOfDelimiter = str.indexOf(DELIMITER, cursor);
25+
int dataStart = indexOfDelimiter + 1;
26+
int dataLength = Integer.parseInt(str.substring(cursor, indexOfDelimiter));
27+
28+
answer.add(str.substring(dataStart, dataStart + dataLength));
29+
cursor = dataStart + dataLength;
30+
}
31+
32+
return answer;
33+
}
34+
}

0 commit comments

Comments
 (0)