//TC: O(n) SC: O(n)
function encodeStrings(strs) {
  let encodedStr = "";
  for (let str of strs) {
    encodedStr += str.length + "#" + str;
  }
  return encodedStr;
}

function decodeString(str) {
  let decodedStrArr = [];
  let i = 0;
  while (i < str.length) {
    let j = i;
    while (str[j] != "#") j++;
    let start = j+1;
    let wordLength = Number.parseInt(str.substring(i, j));
    let subStr = str.substring(start, start + wordLength);
    decodedStrArr.push(subStr);
    i = start + wordLength;
  }
  return decodedStrArr;
}

let strs1 = ["learn", "datastructure", "algorithms", "easily"];
let encodedStr1 = encodeStrings(strs1);
console.log(encodedStr1);
console.log(decodeString(encodedStr1));

let strs2 = ["one", "two", "three"];
let encodedStr2 = encodeStrings(strs2);
console.log(encodedStr2);
console.log(decodeString(encodedStr2));