Skip to content

Commit 4189a2c

Browse files
Merge pull request neetcode-gh#124 from rahulshishodia/271-encode-decode
refactor: updated encode and decode strings
2 parents 1793d53 + c464c34 commit 4189a2c

File tree

1 file changed

+15
-20
lines changed

1 file changed

+15
-20
lines changed

java/271-Encode-and-Decode-Strings.java

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,27 @@ public class Solution {
22

33
public String encode(List<String> strs) {
44
StringBuilder encodedString = new StringBuilder();
5-
for(String str: strs){
6-
int length = str.length();
7-
encodedString.append(length+"#");
8-
encodedString.append(str);
5+
for (String str : strs) {
6+
encodedString.append(str.length())
7+
.append("#")
8+
.append(str);
99
}
1010
return encodedString.toString();
1111
}
1212

1313
public List<String> decode(String str) {
14-
List<String> decodedStrings = new ArrayList();
15-
for(int i =0;i<str.length();i++){
16-
String length = "";
17-
while(str.charAt(i) != '#'){
18-
length += str.charAt(i);
19-
i++;
20-
}
21-
int wordLength = Integer.parseInt(length);
22-
i++;
2314

24-
String word = "";
25-
for(int j=i;j<wordLength+i;j++){
26-
word += str.charAt(j);
27-
}
28-
decodedStrings.add(word);
29-
i=i+wordLength-1;
15+
List<String> list = new ArrayList<>();
16+
int i = 0;
17+
while (i < str.length()) {
18+
int j = i;
19+
while (str.charAt(j) != '#')
20+
j++;
21+
22+
int length = Integer.valueOf(str.substring(i, j));
23+
i = j + 1 + length;
24+
list.add(str.substring(j + 1, i));
3025
}
31-
return decodedStrings;
26+
return list;
3227
}
3328
}

0 commit comments

Comments
 (0)