     "source": [
      "## Test Cases\n",
      "\n",
      "* NULL input\n",
      "* \"\" -> \"\"\n",
      "* \"foo bar\" -> \"rab oof\""
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
 
</s> remove     "## Problem: Implement the function void Reverse(char* str)"
 </s> add     "## Problem: Implement the function void Reverse(char* str)\n",
    "\n",
    "* [Clarifying Questions](#Clarifying-Questions)\n",
    "* [Test Cases](#Test-Cases)\n",
    "* [Algorithm](#Algorithm)\n",
    "* [Code](#Code)\n",
    "* [Pythonic-Code](#Pythonic-Code)" </s> remove     "We'll want to keep two pointers\n",
 </s> add     "We'll want to keep two pointers:\n", </s> remove     "* Time: O(n).\n",
    "* Space: In-place.\n",
 </s> add     "* Time: O(n)\n",
    "* Space: In-place\n", </s> remove     "## Pythonic Solution(s)"
 </s> add     "## Pythonic Code\n",
    "\n",
    "The following code is Pythonic, but requires using additional data structures as Python strings are immutable.  You could use a bytearray or a list instead of a string to simulate manipulating an array of characters." </s> remove     "    return \"\".join(reversed(string))"
 </s> add     "    return ''.join(reversed(string))"
    "* '' -> ''\n",
    "* 'foo bar' -> 'rab oof'"
     "source": [
      "## Test Cases\n",
      "\n",
      "* NULL input\n",
    "* '' -> ''\n",
    "* 'foo bar' -> 'rab oof'"
    "* '' -> ''\n",
    "* 'foo bar' -> 'rab oof'"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
keep keep keep keep replace replace keep keep keep keep keep
 Added notebook index.  Added note about using additional data structures for the Pythonic solution.  Minor cleanup. 
arrays-strings/reverse_string.ipynb