Skip to content

Instantly share code, notes, and snippets.

@varellalexandre
Created December 5, 2020 06:31
Show Gist options
  • Select an option

  • Save varellalexandre/e9118310ec98ada34d07e3b49aab30e8 to your computer and use it in GitHub Desktop.

Select an option

Save varellalexandre/e9118310ec98ada34d07e3b49aab30e8 to your computer and use it in GitHub Desktop.
helps.py
def status(medicoes:list)->int:
assert len(medicoes) >= 2
if medicoes[-1] > medicoes[-2]:
return 1
elif medicoes[-1] < medicoes[-2]:
return -1
else:
return 0
def verifica(medicoes:list,adicionar:int)->bool:
if len(medicoes) <= 1:
return True
status_atual = status(medicoes)
diferenca = adicionar - medicoes[-1]
if diferenca > 0 and status_atual > 0:
return True
elif diferenca < 0 and status_atual < 0:
return True
elif diferenca == 0 and status_atual == 0:
return True
return False
def templos(lista:list)->int:
templos_maravilhosos = [list()]
for medida in lista:
valido = verifica(templos_maravilhosos[-1],medida)
if valido:
templos_maravilhosos[-1].append(medida)
else:
prev = templos_maravilhosos[-1][-1]
nova_lista = [prev,medida]
templos_maravilhosos.append(nova_lista)
print(templos_maravilhosos)
return len(templos_maravilhosos)
exemplos = [
{
'lista':[2,2,2,4,6,5,9,13],
'resposta':4
},
{
'lista':[999],
'resposta':1
},
{
'lista':[9,-109,-226,-343,-460],
'resposta':1
}
]
if __name__ == '__main__':
for exemplo in exemplos:
resposta = templos(exemplo['lista'])
assert resposta == exemplo['resposta']
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment