Python Cheat Sheet - Interview Question
| Question | Code | Question | Code |
|---|---|---|---|
| Check if list contains integer x | l = [3, 4, 5, 2, 11, 5]print(111 in l) # True |
Get missing number in range [1...100] | def get_missing_number(lst):return set(range(1, len(lst)+1)) - set(lst)l = list(range(1,100))l.remove(50)print(get_missing_number(l)) # 50 |
| Find duplicate number in integer list | def find_duplicates(elements):duplicates, seen = set(), set()for element in elements:if element in seen:duplicates.add(element)seen.add(element)return duplicates |
Compute the intersection of two lists | def intersect(lst1, lst2):res, lst2_copy = [], lst2[:]for el in lst1:if el in lst2_copy:res.append(el)lst2_copy.remove(el)return res |
| Check if two strings are anagrams | def is_anagram(s1, s2):return set(s1) == set(s2)print(is_anagram("elvis", "lives")) # True |
Find max and min in unsorted list | l = [4, 3, 6, 3, 4, 888, 1, -11, 22, 3]print(max(l)) # 888print(min(l)) # -11 |
| Remove all duplicates from list | lst = list(range(10)) + list(range(10))lst = list(set(lst))print(lst)# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] |
Reverse string using recursion | def reverse(string):if len(string) < 1: return stringreturn reverse(string[1:]) + string[0]print(reverse("hello")) # olleh |
| Find pairs of integers in list so that their sum is equal to integer x | def find_pairs(l, x):pairs = []for (i, el1) in enumerate(l):for (j, el2) in enumerate(l[i+1:]):if el1 + el2 == x:pairs.append((el1, el2))return pairs |
Compute the first n Fibonacci numbers | a, b = 0, 1n = 10for i in range(n):print(b)a, b = b, a+b# 1, 1, 2, 3, 5, 8, ... |
| Check if a string is a palindrome | def is_palindrome(phrase):return phrase == phrase[::-1]print(is_palindrome("anna")) # True |
Sort list with Quicksort algorithm | def qsort(L):if L == []: return Lreturn qsort([x for x in L[1:] if x < L[0]]) + [L[0]] + qsort([x for x in L[1:] if x >=L[0]])lst = [44, 33, 22, 55, 77, 999]print(qsort(lst))# [22, 33, 44, 55, 77, 999] |
| Use list as stack, array, and queue | # as a list ...l = [3, 4]l += [5, 6] # [3, 4, 5, 6]# ... as a stack ...l.append(10) # [3, 4, 5, 6, 10]l.pop() # [3, 4, 5, 6]# ... and as a queuel.insert(0, 5) # [5, 3, 4, 5, 6]l.pop(0) # [3, 4, 5, 6] |
Find all permutation of string | def get_permutations(w):if len(w)<=1:return set(w)smaller = get_permutations(w[1:])perms = set()for x in smaller:for pos in range(0,len(x)+1):perm = x[:pos] + w[0] + x[pos:]perms.add(perm)return permsprint(get_permutations("nan"))# {'nna', 'ann', 'nan'} |
Reference Image: Interview