Sinulle annetaan kaksi listaa A ja B, jotka molemmat sisältävät luvut 1 \dots n jossain järjestyksessä.
Tehtäväsi on laskea, moniko luvuista 1 \dots n esiintyy aiemmin listalla A kuin listalla B. Tässä tehtävässä n voi olla suuri ja sinun täytyy keksiä tehokas algoritmi. Algoritmin aikavaativuuden tulee olla O(n).
Toteuta tiedostoon twolists.py
funktio count
, joka palauttaa halutun tuloksen.
def count(a, b): # TODO if __name__ == "__main__": print(count([2,3,4,1], [1,2,3,4])) # 3 print(count([1,2,3,4], [1,2,3,4])) # 0 print(count([4,7,3,1,6,2,5], [5,6,1,2,4,3,7])) # 3 print(count([5,4,9,1,8,3,2,6,7], [6,2,8,4,9,1,5,7,3])) # 5
Selitys: Ensimmäisessä testissä luvut 2, 3 ja 4 esiintyvät listalla A aiemmin kuin listalla B.