22import java .util .List ;
33
44class SolutionEncodeAndDecodeStrings {
5+
56 private static final char SEPERATOR = '/' ;
67 /*
78 * @param strs: a list of strings
@@ -14,9 +15,9 @@ public String encode(List<String> strs) {
1415 var answer = new StringBuilder ();
1516
1617 for (var str : strs ) {
17- answer .append (str . length () )
18- .append (str )
19- .append (SEPERATOR );
18+ answer .append (SEPERATOR )
19+ .append (str . length () )
20+ .append (str );
2021 }
2122
2223 return answer .toString ();
@@ -31,16 +32,12 @@ public String encode(List<String> strs) {
3132 public List <String > decode (String str ) {
3233 // write your code here
3334 List <String > answer = new ArrayList <>();
34- var charArray = str .toCharArray ();
35- for (int i =0 ; i <charArray .length ; i ++) {
36- if (charArray [i ] == SEPERATOR ) {
37- var size = (int ) charArray [i -1 ];
38- char [] word = new char [size ];
39- System .arraycopy (charArray , i + 1 , word , 0 , size );
40-
41- i +=size ;
42- answer .add (String .valueOf (word ));
43- }
35+ var i = 0 ;
36+ while (i < str .length ()) {
37+ var seperatorIdx = str .indexOf (SEPERATOR , i ) + 1 ;
38+ var size = Integer .parseInt (str .substring (seperatorIdx , seperatorIdx + 1 ));
39+ i = seperatorIdx + size + 1 ;
40+ answer .add (str .substring (seperatorIdx + 1 , i ));
4441 }
4542
4643 return answer ;
0 commit comments