Campeão mensal do I Desafio do PUG-PE Challenge Anunciado!

Olá pessoal,

Hoje finalizamos o ciclo de desafios mensal do I Desafio do PUG-PE Challenge! Para quem não conhece esse tal desafio, ele é  um desafio semanal onde são propostos problemas triviais que podem ser resolvidos com Python. Estes problemas são postados todas sexta-feiras e os códigos/soluções propostas são enviados por membros do grupo PUG-PE. Nisso há uma votação para escolha da solução mais criativa e a mais pythonica, onde há uma distribuição de pontos/ranking. O primeiro do ranking ao final do mês ganhará brindes do pug-pe como canecas, adesivos ou camisas!

O campeão deste mês foi o nosso membro Lauro Moura (@lauromoura) que venceu invicto com diferença de 6 pontos pra o segundo-lugar! Parabéns Lauro :D

A proposta deste desafio não é nem a competição, que é saudável… mas a discussão entre os membros sobre as soluções propostas para variados problemas diários de programação.  Muitos gostaram também por usarem práticas de TDD, pois todos os códigos tem os testes associados, onde estes devem passar para a solução ser aceita!

Agradecemos a todos e quem quiser participar do II Desafio, se inscreva na nossa lista e nos envie um email e acompanhe o nosso repositório no Github do PUG-PE Challenge!

Agradecemos ao nosso colega Nielson (@nielsonnas) pelo apoio com a criação do Site de Pontuação do PUG-PE Challenge!

Valeu !

Vamos a alguns problemas e soluções bem criativas:

I Desafio do PUG-PE


Solução por Lauro Moura:
def pack(items):
    import itertools
    return [list(v) for k, v in itertools.groupby(items)]
Solução por Rafael Caricio:
def pack(l):
    return reduce(lambda x,y:((len(x)==0 or (len(x)>0 and x[-1][0]!=y)) and \
x+[[y]]) or x[:-1]+[x[-1]+[y]], l, [])
II Desafio do PUG-PE Challenge
Solução apresentada por Marcel Caraciolo

def shortestpath(graph,start,end,path,pathes=[]):
    path = path[:]
    path+= [start]
    if start == end:
        return path
    shortest = None
    for neighbor in graph[start]:
        if neighbor not in path:
            newPath = shortestpath(graph,neighbor,end,path)
            if newPath:
                if not shortest or len(newPath) <= len(shortest):
                    shortest = newPath[:]
                    pathes.append(tuple(shortest))
    return shortest
def short_path(graph,start,end):
    if not graph or (start not in graph) or (end not in graph): return None
    pathes = []
    shortestpath(graph,start,end,[],pathes)
    return pathes

III Desafio do PUG-PE


Solução por Genivaldo
def tuplify(a):
    return None if len(a)==0 else map(lambda x: tuple(a[x:x+2]), \
range(0,len(a)-1,2)) or None
Solução por Lauro Moura:
def tuplify(n):
    '''Returns a list of 2-tuples from the provided data'''
    return zip(n[::2], n[1::2]) or None

IV Desafio do PUG-PE


Solução por Marcel Caraciolo:
transpose = lambda lista: map(list, zip(*lista))

Solução por Nielson Santana:

transpose = lambda l: reduce(lambda x,y: x+[list(y)],zip(*l),[])

Parabéns a todos os participantes! Muitas soluções alieníginas e interessantes!
Até a próxima,
Marcel Caraciolo
About these ads

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

%d blogueiros gostam disto: