Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Uncategorized category for Digit Stack by Kacper_Kapela
"""
Program polega na tym ,że musimy z sumować cyfry które zostaną w stosie
Głowne komendy w stosie to :
push- dodaje element na wierzcholek stosu
pop - usuwa element ze stosu, jezeli nic nie ma w stosie zwraca 0
peek - podaje co znajduje sie w stosie
Dodatkowo sumujemy tylko w funkcji pop i peek, i tylko wierzcholki
"""
"""
1. Najpierw tworze pusty stos oraz zmienna przechowujaca sume moich cyfr.
2. W drugim kroku tworze petle ktora najpierw:
-sprawdza czy stos zaczyna sie sie od slowa PUSH
-jesli tak to na koncu stosu(-1) zalacza dana wartosc
-w przeciwnym razie: do stosu dodajemy wartosc z wierzcholka stosu
-dodatkowo jezeli petla znajdzie slowko POP to usuwa nasz wierzcholek funkcja pop
3. Funkcja zwraca nam sume cyfr ze stosu
"""
def digit_stack(commands):
stos=[]
suma_cyfr=0
for command in commands:
if command.startswith("PUSH"):
stos.append(int(command[-1]))
elif stos:
suma_cyfr += stos[-1]
if command == "POP":
stos.pop()
return suma_cyfr
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert digit_stack(["PUSH 3", "POP", "POP", "PUSH 4", "PEEK",
"PUSH 9", "PUSH 0", "PEEK", "POP", "PUSH 1", "PEEK"]) == 8, "Example"
assert digit_stack(["POP", "POP"]) == 0, "pop, pop, zero"
assert digit_stack(["PUSH 9", "PUSH 9", "POP"]) == 9, "Push the button"
assert digit_stack([]) == 0, "Nothing"
Dec. 17, 2015