      "    * If char == last_char\n",
      "        count++\n",
      "    * Else\n",
      "        * Append last_char to compressed_string\n",
      "        * append count to compressed_string\n",
      "        * count = 1\n",
      "        * last_char = char\n",
      "    * Append last_char to compressed_string\n",
      "    * append count to compressed_string\n",
      "* return compressed_string\n",
      "\n",
      "Complexity:\n",
      "* Time: O(n)\n",
      "* Space: O(2m) where m is the size of the compressed list and the resulting string copied from the list"
     ]
 
</s> remove     "* For each char in string\n",
    "    * If char == last_char\n",
    "        count++\n",
    "    * Else\n",
 </s> add     "    * For each char in string\n",
    "        * If char is the same as last_char, increment count\n",
    "        * Else\n",
    "            * Append last_char to compressed_string\n",
    "            * append count to compressed_string\n",
    "            * count = 1\n",
    "            * last_char = char\n", </s> remove     "* If string is empty return string\n",
    "* count = 0\n",
    "* size = 0\n",
    "* last_char = first char in string\n",
    "* For each char in string\n",
    "    * If char == last_char\n",
    "        count++\n",
    "    * Else\n",
    "        size += 2\n",
    "        count++\n",
    "        last_char = char\n",
    "* size += 2\n",
 </s> add     "* Calculate the size of the compressed string\n", </s> remove     "* Is the string ASCII (extended)?  Or Unicode?\n",
    "    * ASCII extended, which is 256 characters\n",
 </s> add     "*Problem statements are sometimes intentionally ambiguous.  Asking clarifying questions, identifying constraints, and stating assumptions help to ensure you code the intended solution.*\n",
    "\n",
    "* Can I assume the string is ASCII?\n",
    "    * Yes\n",
    "    * Note: Unicode strings could require special handling depending on your language\n",
    "        * Append count to compressed_string\n",
    "    * Return compressed_string\n",
      "    * If char == last_char\n",
      "        count++\n",
      "    * Else\n",
      "        * Append last_char to compressed_string\n",
    "        * Append count to compressed_string\n",
    "    * Return compressed_string\n",
    "        * Append count to compressed_string\n",
    "    * Return compressed_string\n",
    "        * Append count to compressed_string\n",
    "    * Return compressed_string\n",
    "        * Append count to compressed_string\n",
    "    * Return compressed_string\n",
    "        * Append count to compressed_string\n",
    "    * Return compressed_string\n",
    "        * Append count to compressed_string\n",
    "    * Return compressed_string\n",
      "\n",
      "Complexity:\n",
      "* Time: O(n)\n",
      "* Space: O(2m) where m is the size of the compressed list and the resulting string copied from the list"
     ]
keep keep keep keep replace replace replace replace replace replace keep keep keep keep keep
 Reworked notebook: Added more detail to clarifying questions and test cases.  Reworked algorithm discussion, code, and unit test. 
arrays-strings/compress.ipynb