DEV Community

Rita Carolina for Feministech

Posted on • Updated on

Problemas resolvidos para entrevistas de programador

Trouxe aqui algumas resoluções de algoritmos requisitados em entrevistas. Foi programado da forma mais reduzida e eficiente possível usando python 3.

Maior número ímpar de uma lista

Algoritmo que retorna o maior número ímpar de uma lista.

# %% 
from functools import reduce

data0 = [1,2,3,4,5,6,7,8,19,10,11,21,24,12,14,15,22]

def biggestOdd(array):
    return reduce(lambda x, y: x if x > y else y, filter(lambda x: x & 1, array))

print("Problem 1 - " + str(biggestOdd(data0)))
Enter fullscreen mode Exit fullscreen mode

Inverte a frase

Algoritmo que inverte a frase de entrada, esse algoritmo retorna a frase invertida.

def inversePhrase(phrase):
    return " ".join(phrase.split(" ")[::-1])

print("Problem 2 - " + str(inversePhrase("A frase inteira deve ser revertida")))
Enter fullscreen mode Exit fullscreen mode

Maior soma de sequência contínua

O algoritmo retorna a maior soma de uma sequência contínua.

# %%
def continousSequenceBiggestSum(array):
    max_sum = 0
    for i in range(len(array)):
        for j in range(i, len(array)):
            if sum(array[i:j+1]) > max_sum:
                max_sum = sum(array[i:j+1])
    return max_sum


print("Problem 3 - " + str(continousSequenceBiggestSum(data)))

data2 = [6, -4, -2, 1, -3, 5, -1, 2, 1, 1, -5, 4]
print("Problem 3 - " + str(continousSequenceBiggestSum(data2)))
Enter fullscreen mode Exit fullscreen mode

Maior soma de sequência contínua otimizada

Esse algoritmo também retorna a maior soma de uma sequência contínua, porém é mais reduzido o código.

# %%
def continousSequenceBiggestSum2(array):
  [sum(array[idx:i+1]) for idx, itm in enumerate(array) for i, j in enumerate(array)]


data = [-1, 5, 2, 1, 4, -7, 8, -3, -4, 2]
print(continousSequenceBiggestSum2(data))
Enter fullscreen mode Exit fullscreen mode

Espero que isso te auxilie de alguma forma. Eu pretendo criar conteúdos relevantes de algoritmos em português.

Se você sentiu falta de algo nesse tutorial, por favor comenta pra que eu possa aperfeiçoar meu trabalho.

Top comments (0)