Cześć, znalazlem na necie takie zadania z rozmowy o prace dla programisty Js, ja programuje w Pythonie i chcialem sie z nimi zmierzyc, co prawda działa, ale zastanawiam się czy można to zrobić lepiej.
Treść 1 zad.:
Napisz funkcję findMissing, która jako argument przyjmuje tablicę N liczb całkowitych z zakresu od 0 do N. W tablicy wszystkie elementy są unikalne. Liczb z zakresu <0, N>, jest N + 1. Tablica ma długość N. W tablicy brakuje jednego elementu z zakresu. Funkcja findMissing powinna zwrócić brakujący element:
Mój kod:
tablica = [0,2,4,1,5]
def findMissing(n):
l = len(n) +1
for i in range(l):
if i not in n:
return(i)
print(findMissing(tablica))
Treść zad.2:
Napisz program, który zwróci wynik otrzymany na podstawie zestawu instrukcji. Instrukcje składają się ze słowa kluczowego i liczby oddzielonych spacją. Instrukcje oddzielone są znakiem nowej linii. Zestaw instrukcji pobierany jest z pliku, a wynik obliczeń powinien być wypisany na ekranie. Plik może zawierać dowolną liczbę instrukcji. Instrukcje mogą być dowolną operacją przyjmującą dwa argumenty (np. add, subtract, multiply, divide itp.). Instrukcje powinny być interpretowane w kolejności wprowadzenia (kolejność operacji w matematyce powinna być ignorowana). Ostatnią instrukcją powinna być apply i liczba. Na przykład apply 3. Ta liczba powinna być użyta w trakcie tworzenia instancji kalkulatora. Następnie kalkulator powinien wykonać po kolei wszystkie wcześniej podane operacje.
Dodatkowo przykłady działania programu:
wejście:
add 2
multiply 3
apply 10
wyjście: 36
wyjaśnienie: ((10 + 2) * 3) = 36
wejście:
multiply 3
add 2
apply 10
wyjście: 32
wyjaśnienie: ((10 * 3) + 2) = 32
wejście:
apply 1
wyjście: 1
Mój kod:
ad=0
mu=0
dod = False
mul = False
def add(a):
global ad
ad = ad + a
if mu == 0:
global dod
dod = True
def multiply(m):
global mu
mu = mu + m
if ad == 0:
global mul
mul = True
def apply(ap):
if ad == 0 and mu == 0:
print(ap)
elif ad == 0 and mu != 0:
print(ap * mu)
elif ad != 0 and mu == 0:
print(ap + ad)
elif ad != 0 and mu != 0:
if dod == True:
print((ap + ad) * mu)
elif mul == True:
print((ap * mu) + ad)
multiply(2)
add(5)
apply(10)