{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "

cs1001.py , Tel Aviv University, Spring 2020

\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exam recitation\n", "\n", "We went over various questions from previous exams" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###### Takeaways:\n", "- The exam is easy, all you have to do is write down the correct answers\n", "- When in doubt, bet on 42" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Code for printing several outputs in one cell (not part of the recitation):" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from IPython.core.interactiveshell import InteractiveShell\n", "InteractiveShell.ast_node_interactivity = \"all\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 2017AA Q5\n", "\n", "Given a list of sentences (each one a string over \"A-Z\" and \" \"), implement a structure supporting two operations:\n", "\n", "* ```create_structure``` - the input is a list of sentences, the output is the structure\n", "* ```find``` - the input is a word, the output is all sentences containing it\n", "\n", "```find``` needs to run in $O(1)$ on average and ```create_structure``` has no limitation.\n", "\n", "The idea - use a hashtable, map words to sentences containing them." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['hi bye bye', 'bye hi why']" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "['bye hi why']" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "def create_structure(lst):\n", " d = {}\n", " for sentence in lst:\n", " words = set(sentence.split(\" \")) #Why set??? A.C: O(k), W.C. O(k^2)\n", " for word in words:\n", " if word in d:\n", " d[word] += [sentence]\n", " else:\n", " d[word] = [sentence]\n", " return d\n", "\n", "def find(structure, word):\n", " if word in structure:\n", " return structure[word]\n", " return []\n", "\n", "st = create_structure([\"hi bye bye\", \"bye hi why\"])\n", "find(st, \"bye\")\n", "find(st, \"why\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analyze the runtime complexity of ```create_structure```\n", "\n", "Let $n$ be the number of sentences and $k$ be the maximal number of words in a sentence.\n", "\n", "Each ```set``` construction runs in time $O(k)$ on average and $O(k^2)$ in the worst case.\n", "\n", "For each of the $n\\cdot k$ words in the input we need to access ```d```. The running time for each access is $O(1)$ in the average case and $O(|d|)$ in the worst case. Therefore, in total the running time is $O(nk)$ in the average case and $O(n^2k^2)$ in the worst case (note that this part of the process dominates the cost of sets construction)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Improve running time when each word is of length 1\n", "\n", "If we are guaranteed all words are letters, can we do better? Yes! \n", "\n", "Instead of our dictionary, ```create_structure``` will init. a list of length 26. We will again convert each sentence to a set of letters and then iterate over the set adding sentence to ```lst[i]``` if it contains the `i`th letter in the abc.\n", "\n", "Now find will work in $O(1)$ in the worst case since we only need to access a list at a specific index." ] }, { "attachments": { "image.png": { "image/png": "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" } }, "cell_type": "markdown", "metadata": {}, "source": [ "## 2018AA5: Rotating trees\n", "\n", "Given two Binary Trees $T,S$ we say that $T$ and $S$ are equivalent if they are the same up to a sequence of switching between left and right sons of some of the nodes in the trees. \n", "\n", "The following trees are equivalent:\n", "\n", "![image.png](attachment:image.png)" ] }, { "attachments": { "image.png": { "image/png": "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" } }, "cell_type": "markdown", "metadata": {}, "source": [ "But they are not equivalent to this tree:\n", "\n", "![image.png](attachment:image.png)\n", "\n", "Implement ```equiv(r1, r2)``` which gets two root nodes ```r1, r2``` and return `True` iff they represent roots of equivalent trees. The function should be recursive.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "class Tree_node():\n", " def __init__(self, key, val):\n", " self.key = key\n", " self.val = val\n", " self.left = None\n", " self.right = None\n", "\n", " def __repr__(self):\n", " return \"(\" + str(self.key) + \":\" + str(self.val) + \")\"\n", "\n", " def __eq__(self,other):\n", " if other==None:\n", " return False\n", " if self.key==other.key and self.val==other.val:\n", " return True\n", " else:\n", " return False \n", " \n", "class Binary_search_tree():\n", "\n", " def __init__(self):\n", " self.root = None\n", "\n", "\n", " def __repr__(self): #no need to understand the implementation of this one\n", " out = \"\"\n", " for row in printree(self.root): #need printree.py file\n", " out = out + row + \"\\n\"\n", " return out\n", "\n", "\n", " def lookup(self, key):\n", " ''' return node with key, uses recursion '''\n", "\n", " def lookup_rec(node, key):\n", " if node == None:\n", " return None\n", " elif key == node.key:\n", " return node\n", " elif key < node.key:\n", " return lookup_rec(node.left, key)\n", " else:\n", " return lookup_rec(node.right, key)\n", "\n", " return lookup_rec(self.root, key)\n", "\n", "\n", "\n", " def insert(self, key, val):\n", " ''' insert node with key,val into tree, uses recursion '''\n", "\n", " def insert_rec(node, key, val):\n", " if key == node.key:\n", " node.val = val # update the val for this key\n", " elif key < node.key:\n", " if node.left == None:\n", " node.left = Tree_node(key, val)\n", " else:\n", " insert_rec(node.left, key, val)\n", " else: #key > node.key:\n", " if node.right == None:\n", " node.right = Tree_node(key, val)\n", " else:\n", " insert_rec(node.right, key, val)\n", " return\n", " \n", " if self.root == None: #empty tree\n", " self.root = Tree_node(key, val)\n", " else:\n", " insert_rec(self.root, key, val)\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "The idea is:\n", "- Two leaves are equivalent if their key and value are equivalent\n", "- Two trees are equivalent if:\n", " - Their roots agree on their keys and values\n", " - Their left sons `L1, L2` and right sons `R1,R2` are equivalent, or `L1, R2` and `L2, R1` are equivalent\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "def equiv(node1, node2):\n", " if node1 == node2 == None:\n", " return True\n", " if node1 == None or node2 == None or node1 != node2:\n", " return False\n", " no_switch = equiv(node1.left, node2.left) and equiv(node1.right, node2.right)\n", " switch = equiv(node1.left, node2.right) and equiv(node1.right, node2.left)\n", " return switch or no_switch\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "T1 = Binary_search_tree()\n", "T1.insert(1,1)\n", "T1.root.left = Tree_node(2,2)\n", "T1.root.right = Tree_node(3,3)\n", "T1.root.left.left = Tree_node(4,4)\n", "\n", "T2 = Binary_search_tree()\n", "T2.insert(1,1)\n", "T2.root.left = Tree_node(3,3)\n", "T2.root.right = Tree_node(2,2)\n", "T2.root.right.left = Tree_node(4,4)\n", "\n", "T3 = Binary_search_tree()\n", "T3.insert(1,1)\n", "T3.root.left = Tree_node(3,3)\n", "T3.root.right = Tree_node(2,2)\n", "T3.root.left.left = Tree_node(4,4)\n", "\n", "equiv(T1.root,T2.root)\n", "equiv(T1.root,T3.root)\n", "#k = Tree_node(1,1)\n", "#p = Tree_node(1,1)\n", "#k == p" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Can memoization help? Not really, since subtrees can be disjoint, we will never reach a tree we've already examined." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, given two roots of `T1,T2` determine if there exists a non-empty subtree of `T1` equivalent to a subtree of `T2`.\n", "\n", "Wait, why is the non-empty requirement important here?\n", "\n", "The idea\n", "- If the two roots are equivalent (and not empty) we are done\n", "- If one of the roots is `None`, we are done\n", "- Otherwise:\n", " - There may be a subtree of `T2` equivalent to `T1`\n", " - Or a subtree of `T1` equivalent to `T2`" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "def subequiv(node1, node2):\n", " if equiv(node1, node2) and node1 != None:\n", " return True\n", " if node1 == None or node2 == None:\n", " return False\n", " t1_stays = subequiv(node1, node2.left) or subequiv(node1, node2.right)\n", " t2_stays = subequiv(node1.left, node2) or subequiv(node1.right, node2)\n", " return t1_stays or t2_stays" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "subequiv(T1.root,T2.root)\n", "T4 = Binary_search_tree()\n", "T4.insert(100,100)\n", "T4.root.left = T2.root\n", "subequiv(T4.root, T2.root)\n", "\n", "# Since they share leaves\n", "subequiv(T2.root, T3.root)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2017AB2: Jump\n", "\n", "Given a list `lst` of `n` integers where `lst[0]=0` we want to get to `lst[n-1]` by jumping to the right (i.e. - advancing in the list). \n", "\n", "We init a counter `cnt=0` and if we add `lst[i]` to the counter for every index `i` we visit.\n", "\n", "For example, if `lst=[0, 3, -5, 10, -5]` and our steps are $1, 1, 2$ the penalty is $3-5+5=3$.\n", "\n", "Implement `jump` which gets a list as described above and returns the minimal total penalty.\n", "\n", "The idea: We must visit `lst[-1]` and we should visit any index `i` s.t. `lst[i] < 0`." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def jump(lst):\n", " # Note the range!\n", " return lst[-1] + sum(lst[i] for i in range(len(lst)-1) if lst[i] < 0)\n", "\n", "jump([0,4,5,1,2,-3,-5])\n", "\n", "jump([0,4,5,1,2,-3,2])\n", "\n", "#three parameters: lst, max_jump, i (=our location in the list)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Jump limited - we now get a parameter `max_jump` and we can now advance only `1 <= i <= max_jump` steps in each move.\n", "\n", "Implement `jump_rec` recursively and without slicing." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "def jump_lim(lst, max_jump):\n", " return jump_rec(lst, max_jump, 0)\n", "\n", "def jump_rec(lst, max_jump, ind):\n", " if ind == len(lst) - 1:\n", " return lst[ind]\n", " cnt = float(\"inf\") #Python's representation of infinity, x < float(\"inf\") for any x that is integer or float\n", " for j in range(1, max_jump + 1):\n", " if ind+j < len(lst):\n", " res = jump_rec(lst, max_jump, ind+j) + lst[ind]\n", " if res < cnt:\n", " cnt = res\n", " return cnt\n", " \n", "jump_lim([0,4,5,1,2,-3,2], 100)\n", "jump_lim([0, 2, 2, 0, 4], 3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Add memoization:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def jump_lim(lst, max_jump):\n", " d = {}\n", " return jump_rec_mem(lst, max_jump, 0, d)\n", "\n", "def jump_rec_mem(lst, max_jump, ind, d):\n", " if ind == len(lst) - 1:\n", " return lst[ind]\n", " if ind in d:\n", " return d[ind]\n", " \n", " cnt = float(\"inf\")\n", " for j in range(1, max_jump + 1):\n", " if ind+j < len(lst):\n", " if ind + j in d:\n", " res = d[ind + j] + lst[ind]\n", " else:\n", " d[ind + j] = jump_rec_mem(lst, max_jump, ind+j, d)\n", " res = d[ind + j] + lst[ind]\n", " if res < cnt:\n", " cnt = res\n", " d[ind] = cnt\n", " return cnt\n", " \n", "jump_lim([0,4,5,1,2,-3,2], 100)\n", "jump_lim([0, 2, 2, 0, 4], 3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2019AB2: Matching strings\n", "Given a list of strings `str_lst` and a string `word` we say we can construct `word` from `str_lst` if we can pick at most 1 char from each string in the list that yield `word`.\n", "\n", "For example, we can construct \"Raz\" from `[\"abc\", \"FOR\", \"buzz\"]` and also from `[\"abc\", \"FOR\", \"aaa\", \"buzz\", \"hello\"]` but not from `[\"az\", \"FOR\", \"jkl\"]`\n", "\n", "Implement the recursive function `construct_rec`. \n", "\n", "The idea is that we maintain an index `j` s.t. we need to construct `word[j:]` from the list of strings.\n", "\n", "- If `j==len(word)` we are done.\n", "- Otherwise, we go over the list, for each string we check if it contains `word[j]` and if so we recurse on `j+1` and ommit that string from the list\n", "- If we exit the loop without success, we return `False`" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def construct(str_list, word):\n", " if len(str_list) < len(word):\n", " return False\n", " return construct_rec(str_list, word, 0)\n", "\n", "def construct_rec(str_list, word, j):\n", " if j == len(word):\n", " return True\n", " for i in range(len(str_list)):\n", " if word[j] in str_list[i]:\n", " if construct_rec(str_list[:i]+str_list[i+1:], word, j+1):\n", " return True\n", " return False\n", " \n", "construct([\"abc\", \"FOR\", \"buzz\"], \"Raz\") \n", "construct([\"az\", \"FOR\", \"jkl\"], \"Raz\") \n", "construct([\"az\", \"FOR\", \"hello\",\"a\"], \"Raz\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is important to not ethat if the recursive call in line 11 fails we do not immediately return `False` (as in, this is not a greedy algorithm). For example, this greedy approach would fail on `Raz` and `[\"Rabc\", \"FOR\", \"buzz\"]` even though we can construct the word from this list.\n", "\n", "Now we need to solve a variant where the order of the strings we take must agree with the order of characters in `word`.\n", "\n", "E.g., now we can no longer construct \"Raz\" from `[\"abc\", \"FOR\", \"buzz\"]` but we can from `[\"FOR\", \"abc\", \"jkl\", \"buzz\"]`.\n", "\n", "The new solution should run in time $O(n)$ where $n$ is the length fo the string list.\n", "\n", "The idea: we can now be greedy. Whenever we can take a certain string we should, because we will not be able to take it from characters later on." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def construct_order(str_list, word):\n", " i = 0\n", " j = 0\n", " while i < len(word) and j < len(str_list):\n", " if word[i] in str_list[j]:\n", " i += 1\n", " j += 1\n", " \n", " if i == len(word):\n", " return True\n", " \n", " return False\n", " \n", " \n", "construct_order([\"abc\", \"FOR\", \"buzz\"], \"Raz\") \n", "construct_order([\"FOR\", \"abc\", \"buzz\"], \"Raz\") " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Binary Search" ] }, { "attachments": { "image.png": { "image/png": "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" } }, "cell_type": "markdown", "metadata": {}, "source": [ "![image.png](attachment:image.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Implement find_steady, a function that receives a list `L` of sorted (ascending) unique integers, and returns a value `i >= 0` s.t. `L[i] == i`. If there is no such `i`, None is returned. If there is more than one such index, any one of them can be returned.\n", "\n", "For example: \n", "\n", "`find_steady([3, 5, 9, 17]) == None`\n", "\n", "`find_steady([-3, 0, 2, 10]) == 2`\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Naive solution" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def find_steady(lst):\n", " for i in range(len(lst)):\n", " if lst[i] == i:\n", " return i\n", " \n", " return None\n", "\n", "print(find_steady([3, 5, 9, 17]))\n", "print(find_steady([-3, 0, 2, 10]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Binary search solution" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def find_steady(lst):\n", " n = len(lst)\n", " left = 0\n", " right = n-1\n", " while left <= right:\n", " middle = (right + left) // 2 # middle rounded down\n", " if middle == lst[middle]: # item found\n", " return middle\n", " elif middle < lst[middle]: # item not in top half\n", " right = middle - 1\n", " else: # item not in bottom half\n", " left = middle + 1\n", "\n", " return None\n", "\n", "print(find_steady([3, 5, 9, 17]))\n", "print(find_steady([-3, 0, 2, 10]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What just happened? The crucial point about this algorithm is the following: if $lst[mid] > mid$ then a fixed point cannot exist above $mid$. Why is that? \n", "\n", "Assume there exists some $j = mid+k$ for some $k>0$ such that $lst[j] == j$. Note that $lst[mid] \\geq mid + 1$. Now, as the elements in $lst$ are unique, we must have $lst[j] == lst[mid + k] \\geq mid + k + 1 > j$\n", "\n", "A similar argument shows that if $lst[mid] < mid$ then a fixed point cannot exist below $mid$, thus we get the correctness of the algorithm.\n", "\n", "### Questions\n", "\n", "* What is the worst case running time of each solution?\n", "* What happens to each solution if the list is not guaranteed to be sorted?\n", "* What happens to each solution if the list is not guaranteed to be unique?" ] }, { "attachments": { "image.png": { "image/png": "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" } }, "cell_type": "markdown", "metadata": {}, "source": [ "## 2018BA3: Max repeating substring\n", "\n", "![image.png](attachment:image.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\"The algorithm can toss coins, and there could be false positive errors due to coin tossing\" means that the algorithm may include some randomness that could possibly affect the number of false positives. As in Karp Rabin and the choice of $r$.\n", "\n", "\n", "\n", "\n", "A bad solution:\n", "\n", "\n", "try all values of $m$ between $1$ and $n$, and for each value $i$ compute the list of fingerprints of all substrings of length $i$ in $st$ (Using text_fingerprints function). The length of the list is $n-i$ and it contains values of constant size (numbers between 0 and r-1). Running test_fingerprints takes $O(n)$ time. Then, we create a set from this list, and test whether the size of the set is equal to the length of the list. \n", "\n", "The expected time complexity of creating the set is $O(n-i)$. If the list and set are of the same size then there are no repetitions. So we stop and return $i-1$. Overall for each $i$ the expected time complexity is $O(n)$. Complexity is expected $\\Sigma_{i=1}^{m+1}{n} = O(mn)$.\n", "\n", "\n", "A better solution:\n", "\n", "We can use binary search for finding the correct value of $1\\leq m\\leq n$ and obtain a better solution. For each tested value $i$, as before, we test in expected $O(n)$ time whether there are repetitions of length $i$ in the input string. If there are no repetitions of length $i$, we know that $mi$. In any case we can discard half of the candidate values for $m$.\n", "Expected time complexity is $O(n \\log n)$.\n", "\n", "We can even do better (what happens if $m \\ll n$?)\n", "\n", "We can search for $m$ in $O(\\log m)$ time. Start with $i=1$, and double its value as long as we find repetitions of size $i$. As soon as we reach $i$ with no repeating substring of length $i$, we know that $i/2 \\leq m < i$. Now we can binary search for $m$ within this range.\n", "Note that $i\\leq 2m$. Therefore, we perform $O(\\log m)$ steps.\n", "Overall expected complexity is $O( n\\log m)$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2017AA2: Profit\n", "\n", "Given `n` and a list of integers `values` of length `n`, we we will think of a landlord that has an apartment of size `n` square meters. The landlord can divide his apartment into smaller subapartments and an apartment of size `k <= n` will yield a rent of `value[k-1]` dollars.\n", "\n", "E.g., for `n = 4, values=[1,5,8,9]` we can have:\n", "- One apartment of size `4` renting at `9` dollars\n", "- Two apartments of size `1` and one of size `2` renting at `1+1+5=7` dollars\n", "- And so on...\n", "\n", "Our goal is to find a partition which maximizes the landlords profit. Our solution needs to be recursive and **use no loops**.\n", "\n", "The idea:\n", "- If we don't have any space, or we don't have any partitions available, we make 0 dollars\n", "- If we have 1 meter, we make `value[0]`\n", "- Otherwise, say the length of `len(value)` is `i`:\n", " - If we can make an apartment of size `i`, i.e. `i <= size` then we profit `value[i-1]` and we need to split `size - i` meters\n", " - Otherwise, we can shorten the length of `len(value)` to `i-1` and we still need to split `size`\n", "- We compute both of the above and take the max between them" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def profit(value, size):\n", " n = len(value)\n", " return profit_rec(value, n, size)\n", "\n", "def profit_rec(value, i, size):\n", " if size == 0 or i == 0:\n", " return 0\n", " if size == 1:\n", " return value[0]\n", " \n", " with_last = 0\n", " if i <= size:\n", " with_last = profit_rec(value, i, size - i)+value[i-1]\n", " \n", " without_last = profit_rec(value, i - 1, size)\n", " return max(with_last, without_last)\n", "\n", "profit([1, 5, 8, 9], 4)\n", "profit([2, 3, 7, 8, 9], 5)\n", " " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.1" } }, "nbformat": 4, "nbformat_minor": 1 }