Mucking around with task 5
[summerofcode2018soln.git] / src / task5 / task5-nore.ipynb
index d40bec67e2a527a7eb6d4ec85a89273c75cf9ff5..7fdcae6cda2e7580839ff351936952cdfbb78c77 100644 (file)
@@ -30,7 +30,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "def decomment_no_re(text):\n",
+    "def decomment(text):\n",
     "    s, e = find_comment(text)\n",
     "    while s is not None:\n",
     "        text = text[:s] + text[e+1:]\n",
     "            if end > -1:\n",
     "                length = int(text[start+1:mid])\n",
     "                times = int(text[mid+1:end])\n",
-    "                if length > start:\n",
-    "                    length = start\n",
     "                return start, end, length, times\n",
     "    return None, None, None, None"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 15,
+   "execution_count": 5,
    "metadata": {},
    "outputs": [],
    "source": [
-    "def expand_no_re(text, expansion_limit=None):\n",
+    "def expand(text, expansion_limit=None):\n",
     "    i = 1\n",
     "    s, e, l, n = find_expansion_mark(text)\n",
     "    while s is not None and (expansion_limit is None or (expansion_limit is not None and i <= expansion_limit)):\n",
+    "        if l > s: l = s\n",
     "        text = text[:s-l] + text[s-l:s] * n + text[e+1:]\n",
     "        s, e, l, n = find_expansion_mark(text)\n",
     "        i += 1\n",
@@ -77,7 +76,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 16,
+   "execution_count": 6,
    "metadata": {},
    "outputs": [],
    "source": [
   },
   {
    "cell_type": "code",
-   "execution_count": 17,
+   "execution_count": 7,
    "metadata": {},
    "outputs": [],
    "source": [
-    "data_p = [decomment_no_re(l) for l in data_p_t]\n",
-    "data = [expand_no_re(l) for l in data_p]"
+    "data_p = [decomment(l) for l in data_p_t]\n",
+    "data = [expand(l) for l in data_p]"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 18,
+   "execution_count": 8,
    "metadata": {},
    "outputs": [
     {
        "149043"
       ]
      },
-     "execution_count": 18,
+     "execution_count": 8,
      "metadata": {},
      "output_type": "execute_result"
     }
   },
   {
    "cell_type": "code",
-   "execution_count": 19,
+   "execution_count": 9,
    "metadata": {},
    "outputs": [
     {
        "302266"
       ]
      },
-     "execution_count": 19,
+     "execution_count": 9,
      "metadata": {},
      "output_type": "execute_result"
     }
    "outputs": [],
    "source": [
     "data_s_p_t = open('../../data/05-instructions.txt').read()\n",
-    "data_s_p = decomment_no_re(data_s_p_t)\n",
-    "data_s = expand_no_re(data_s_p)"
+    "data_s_p = decomment(data_s_p_t)\n",
+    "data_s = expand(data_s_p)"
    ]
   },
   {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "23.7 ms ± 1.79 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n"
+      "22.7 ms ± 1.6 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n"
      ]
     }
    ],
    "source": [
     "%%timeit\n",
-    "data_p = [decomment_no_re(l) for l in data_p_t]\n",
-    "data = [expand_no_re(l) for l in data_p]"
+    "data_p = [decomment(l) for l in data_p_t]\n",
+    "data = [expand(l) for l in data_p]"
    ]
   },
   {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "360 ms ± 6.67 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
+      "354 ms ± 7.34 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
      ]
     }
    ],
    "source": [
     "%%timeit\n",
-    "data_s_p = decomment_no_re(data_s_p_t)\n",
-    "data_s = expand_no_re(data_s_p)"
+    "data_s_p = decomment(data_s_p_t)\n",
+    "data_s = expand(data_s_p)"
    ]
   },
   {