Fixed typo
[advent-of-code-15.git] / advent08.ipynb
1 {
2 "cells": [
3 {
4 "cell_type": "code",
5 "execution_count": 13,
6 "metadata": {
7 "collapsed": false
8 },
9 "outputs": [],
10 "source": [
11 "pi8 = [l.strip() for l in open('advent08.txt').readlines()]"
12 ]
13 },
14 {
15 "cell_type": "code",
16 "execution_count": 14,
17 "metadata": {
18 "collapsed": false
19 },
20 "outputs": [
21 {
22 "data": {
23 "text/plain": [
24 "[('\"qxfcsmh\"', 9),\n",
25 " ('\"ffsfyxbyuhqkpwatkjgudo\"', 24),\n",
26 " ('\"byc\\\\x9dyxuafof\\\\\\\\\\\\xa6uf\\\\\\\\axfozomj\\\\\\\\olh\\\\x6a\"', 43),\n",
27 " ('\"jtqvz\"', 7),\n",
28 " ('\"uzezxa\\\\\"jgbmojtwyfbfguz\"', 25)]"
29 ]
30 },
31 "execution_count": 14,
32 "metadata": {},
33 "output_type": "execute_result"
34 }
35 ],
36 "source": [
37 "[(l, len(l)) for l in pi8][:5]"
38 ]
39 },
40 {
41 "cell_type": "code",
42 "execution_count": 5,
43 "metadata": {
44 "collapsed": false
45 },
46 "outputs": [],
47 "source": [
48 "def interpret_len(s):\n",
49 " # s = s0[1:-2]\n",
50 " #print(len(s0), len(s))\n",
51 " l = 0\n",
52 " i = 0\n",
53 " while i < len(s):\n",
54 " # print(i, l, s[i])\n",
55 " if s[i] == '\\\\':\n",
56 " if s[i+1] == '\\\\' or s[i+1] == '\"':\n",
57 " l += 1\n",
58 " i += 2\n",
59 " else:\n",
60 " l += 1\n",
61 " i += 4\n",
62 " else:\n",
63 " l += 1\n",
64 " i += 1\n",
65 " return l - 2"
66 ]
67 },
68 {
69 "cell_type": "code",
70 "execution_count": 6,
71 "metadata": {
72 "collapsed": false
73 },
74 "outputs": [
75 {
76 "data": {
77 "text/plain": [
78 "7"
79 ]
80 },
81 "execution_count": 6,
82 "metadata": {},
83 "output_type": "execute_result"
84 }
85 ],
86 "source": [
87 "interpret_len(pi8[0])"
88 ]
89 },
90 {
91 "cell_type": "code",
92 "execution_count": 7,
93 "metadata": {
94 "collapsed": false
95 },
96 "outputs": [
97 {
98 "data": {
99 "text/plain": [
100 "[]"
101 ]
102 },
103 "execution_count": 7,
104 "metadata": {},
105 "output_type": "execute_result"
106 }
107 ],
108 "source": [
109 "[l for l in pi8 if len(eval(l)) != interpret_len(l)]"
110 ]
111 },
112 {
113 "cell_type": "code",
114 "execution_count": 8,
115 "metadata": {
116 "collapsed": false
117 },
118 "outputs": [
119 {
120 "data": {
121 "text/plain": [
122 "1350"
123 ]
124 },
125 "execution_count": 8,
126 "metadata": {},
127 "output_type": "execute_result"
128 }
129 ],
130 "source": [
131 "sum(len(s) - len(eval(s)) for s in pi8)"
132 ]
133 },
134 {
135 "cell_type": "code",
136 "execution_count": 9,
137 "metadata": {
138 "collapsed": true
139 },
140 "outputs": [],
141 "source": [
142 "def uninterpret_len(s):\n",
143 " return len(s) + s.count('\\\\') + s.count('\"') + 2"
144 ]
145 },
146 {
147 "cell_type": "code",
148 "execution_count": 10,
149 "metadata": {
150 "collapsed": false
151 },
152 "outputs": [
153 {
154 "data": {
155 "text/plain": [
156 "[(9, 13, '\"qxfcsmh\"'),\n",
157 " (24, 28, '\"ffsfyxbyuhqkpwatkjgudo\"'),\n",
158 " (43, 56, '\"byc\\\\x9dyxuafof\\\\\\\\\\\\xa6uf\\\\\\\\axfozomj\\\\\\\\olh\\\\x6a\"'),\n",
159 " (7, 11, '\"jtqvz\"'),\n",
160 " (25, 31, '\"uzezxa\\\\\"jgbmojtwyfbfguz\"'),\n",
161 " (24, 29, '\"vqsremfk\\\\x8fxiknektafj\"'),\n",
162 " (34, 45, '\"wzntebpxnnt\\\\\"vqndz\\\\\"i\\\\x47vvjqo\\\\\"\"'),\n",
163 " (19, 27, '\"higvez\\\\\"k\\\\\"riewqk\"'),\n",
164 " (29, 35, '\"dlkrbhbrlfrp\\\\\\\\damiauyucwhty\"'),\n",
165 " (5, 11, '\"d\\\\\"\"')]"
166 ]
167 },
168 "execution_count": 10,
169 "metadata": {},
170 "output_type": "execute_result"
171 }
172 ],
173 "source": [
174 "[(len(s), uninterpret_len(s), s) for s in pi8[:10]]"
175 ]
176 },
177 {
178 "cell_type": "code",
179 "execution_count": 11,
180 "metadata": {
181 "collapsed": false
182 },
183 "outputs": [
184 {
185 "data": {
186 "text/plain": [
187 "11"
188 ]
189 },
190 "execution_count": 11,
191 "metadata": {},
192 "output_type": "execute_result"
193 }
194 ],
195 "source": [
196 "uninterpret_len(r'\"\\x27\"')"
197 ]
198 },
199 {
200 "cell_type": "code",
201 "execution_count": 12,
202 "metadata": {
203 "collapsed": false
204 },
205 "outputs": [
206 {
207 "data": {
208 "text/plain": [
209 "2085"
210 ]
211 },
212 "execution_count": 12,
213 "metadata": {},
214 "output_type": "execute_result"
215 }
216 ],
217 "source": [
218 "sum(uninterpret_len(s) - len(s) for s in pi8)"
219 ]
220 },
221 {
222 "cell_type": "code",
223 "execution_count": null,
224 "metadata": {
225 "collapsed": true
226 },
227 "outputs": [],
228 "source": []
229 }
230 ],
231 "metadata": {
232 "kernelspec": {
233 "display_name": "Python 3",
234 "language": "python",
235 "name": "python3"
236 },
237 "language_info": {
238 "codemirror_mode": {
239 "name": "ipython",
240 "version": 3
241 },
242 "file_extension": ".py",
243 "mimetype": "text/x-python",
244 "name": "python",
245 "nbconvert_exporter": "python",
246 "pygments_lexer": "ipython3",
247 "version": "3.4.3"
248 }
249 },
250 "nbformat": 4,
251 "nbformat_minor": 0
252 }