Done task 6 in Python
[summerofcode2018soln.git] / src / task5 / task5-nore.ipynb
index 0d215fdea9aee21ee2df4ff1822cbe6be7942baa..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",
@@ -53,8 +53,6 @@
     "            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"
    ]
    "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 and (expansion_limit is None or (expansion_limit is not None and i <= expansion_limit)):\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",
@@ -90,8 +89,8 @@
    "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]"
    ]
   },
   {
    "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)"
    ]
   },
   {