#from typing import Tuple #def test(a)-> Optional[float]: # if a > 0: # return a*1.0 #0. Funkcia ktora vrati zoznam zrotovany o k pozicii. def shift(l, k): k = k % (len(l) + 1) #FUNGUJE pre lub. k? return l[k:] + l[:k] #1. #Funkcia vrati retazec medzi zadanymi retazcami. str_between("123456", "12", "5") --> "34" def find_idx(source, s): for idx in range(len(source)-len(s)+1): if source[idx:idx+len(s)] == s: return idx return -1 def str_between(source, str1, str2): idx1 = find_idx(source, str1) idx2 = find_idx(source, str2) return source[idx1+len(str1):idx2] #6.2.2. Hádání čísla počítačem def guess_number_pc(upper_bound): pass # Mysli si cislo od 1 do 10. # Je cislo 5 mensi (0), rovno (1), nebo vetsi (2) nez tvoje cislo? # 2 # Je cislo 2 mensi (0), rovno (1), nebo vetsi (2) nez tvoje cislo? # 2 # Tvoje cislo je 1. #guess_number_pc(10) #6.2.4. Binární vyhledávání - logaritmicka zlozitost def binary_search(needle, haystack): pass #print(binary_search(5, [1, 2, 5, 8])) # True #print(binary_search(4, [1, 2, 5, 8])) # False #6.2.5. Binární vyhledávání pozice - logaritmicka zlozitost def binary_search_position(needle, haystack): pass #print(binary_search_position(5, [1, 2, 5, 8])) # 2 #print(binary_search_position(4, [1, 2, 5, 8])) # -1 #6.2.7. Umocňování - logaritmicka zlozitost def super_power(base, exp): pass #print(super_power(2, 7)) # 128 #print(super_power(5, 15)) # 30517578125