},
{
"cell_type": "code",
- "execution_count": 104,
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "import sys\n",
+ "sys.setrecursionlimit(10**6)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
"metadata": {},
"outputs": [
{
"148"
]
},
- "execution_count": 104,
+ "execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 105,
+ "execution_count": 4,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 106,
+ "execution_count": 5,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 107,
+ "execution_count": 6,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 108,
+ "execution_count": 7,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 109,
+ "execution_count": 8,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 110,
+ "execution_count": 9,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 111,
+ "execution_count": 10,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 112,
+ "execution_count": 11,
"metadata": {},
"outputs": [
{
"22"
]
},
- "execution_count": 112,
+ "execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 113,
+ "execution_count": 12,
"metadata": {},
"outputs": [
{
"22"
]
},
- "execution_count": 113,
+ "execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 114,
+ "execution_count": 13,
"metadata": {},
"outputs": [
{
"22"
]
},
- "execution_count": 114,
+ "execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "1 loop, best of 3: 7.07 s per loop\n"
+ "100 loops, best of 3: 13.1 ms per loop\n"
]
}
],
"%%timeit\n",
"sum(1 for s in bills\n",
" if s != 0\n",
- " if is_subseq(bills[0], bills[s]))"
+ " if is_subseq_greedy(bills[0], bills[s]))"
]
},
{
"cell_type": "code",
"execution_count": 14,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1 loop, best of 3: 7.88 s per loop\n"
+ ]
+ }
+ ],
+ "source": [
+ "%%timeit\n",
+ "sum(1 for s in bills\n",
+ " if s != 0\n",
+ " if is_subseq(bills[0], bills[s]))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
"metadata": {
"scrolled": true
},
" 146]"
]
},
- "execution_count": 14,
+ "execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "CPU times: user 148 ms, sys: 0 ns, total: 148 ms\n",
- "Wall time: 148 ms\n"
+ "CPU times: user 148 ms, sys: 4 ms, total: 152 ms\n",
+ "Wall time: 150 ms\n"
]
},
{
"(True, False)"
]
},
- "execution_count": 15,
+ "execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 17,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 17,
+ "execution_count": 18,
"metadata": {},
"outputs": [
{
},
{
"cell_type": "code",
- "execution_count": 18,
+ "execution_count": 31,
"metadata": {
"collapsed": true
},
" return s2 == s3\n",
" elif not s2:\n",
" return s1 == s3\n",
+ " elif len(s1) + len(s2) != len(s3):\n",
+ " return False\n",
" else:\n",
- " if s1[-1] == s2[-1] and s1[-1] == s3[-1]:\n",
- " return is_interleave_recursive(s1[:-1], s2, s3[:-1]) or is_interleave(s1, s2[:-1], s3[:-1])\n",
+ " if s1[-1] == s3[-1] and s2[-1] == s3[-1]:\n",
+ " return (is_interleave_recursive(s1[:-1], s2, s3[:-1]) \n",
+ " or \n",
+ " is_interleave_recursive(s1, s2[:-1], s3[:-1]) )\n",
" elif s1[-1] == s3[-1]:\n",
" return is_interleave_recursive(s1[:-1], s2, s3[:-1])\n",
" elif s2[-1] == s3[-1]:\n",
- " return is_interleave(s1, s2[:-1], s3[:-1])\n",
+ " return is_interleave_recursive(s1, s2[:-1], s3[:-1])\n",
" else:\n",
" return False"
]
},
{
"cell_type": "code",
- "execution_count": 19,
+ "execution_count": 20,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 20,
+ "execution_count": 21,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 21,
+ "execution_count": 22,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 22,
+ "execution_count": 23,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 23,
+ "execution_count": 24,
"metadata": {},
"outputs": [
{
"[30]"
]
},
- "execution_count": 23,
+ "execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 24,
+ "execution_count": 25,
"metadata": {},
"outputs": [
{
"[30]"
]
},
- "execution_count": 24,
+ "execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 25,
+ "execution_count": 26,
"metadata": {},
"outputs": [
{
"[30]"
]
},
- "execution_count": 25,
+ "execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 102,
+ "execution_count": 27,
"metadata": {},
"outputs": [
{
"[30]"
]
},
- "execution_count": 102,
+ "execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 26,
+ "execution_count": 28,
"metadata": {},
"outputs": [
{
"True"
]
},
- "execution_count": 26,
+ "execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 27,
+ "execution_count": 32,
"metadata": {},
"outputs": [
{
"[30]"
]
},
- "execution_count": 27,
+ "execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 28,
+ "execution_count": 33,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "1 loop, best of 3: 2.81 s per loop\n"
+ "1 loop, best of 3: 3.12 s per loop\n"
]
}
],
},
{
"cell_type": "code",
- "execution_count": 29,
+ "execution_count": 34,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "1 loop, best of 3: 916 ms per loop\n"
+ "1 loop, best of 3: 971 ms per loop\n"
]
}
],
},
{
"cell_type": "code",
- "execution_count": 30,
+ "execution_count": 35,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "1 loop, best of 3: 1.45 s per loop\n"
+ "1 loop, best of 3: 1.56 s per loop\n"
]
}
],
},
{
"cell_type": "code",
- "execution_count": 31,
+ "execution_count": 36,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "1 loop, best of 3: 705 ms per loop\n"
+ "1000 loops, best of 3: 510 ยตs per loop\n"
]
}
],
},
{
"cell_type": "code",
- "execution_count": 32,
+ "execution_count": 37,
"metadata": {},
"outputs": [
{
"(4.223305555555555, 4, 13, 23.899999999999636)"
]
},
- "execution_count": 32,
+ "execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 33,
+ "execution_count": 38,
"metadata": {},
"outputs": [
{
"(11.13438888888889, 11, 8, 3.8000000000029104)"
]
},
- "execution_count": 33,
+ "execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 34,
+ "execution_count": 39,
"metadata": {},
"outputs": [
{
"(15.36486111111111, 15, 21, 53.5)"
]
},
- "execution_count": 34,
+ "execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 95,
+ "execution_count": 40,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 84,
+ "execution_count": 41,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 82,
+ "execution_count": 42,
"metadata": {},
"outputs": [
{
},
{
"cell_type": "code",
- "execution_count": 83,
+ "execution_count": 43,
"metadata": {},
"outputs": [
{
},
{
"cell_type": "code",
- "execution_count": 85,
+ "execution_count": 44,
"metadata": {},
"outputs": [
{
},
{
"cell_type": "code",
- "execution_count": 99,
+ "execution_count": 45,
"metadata": {},
"outputs": [
{
},
{
"cell_type": "code",
- "execution_count": 100,
+ "execution_count": 46,
"metadata": {},
"outputs": [
{