Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Dilma Boolean Case #DBC

Dilma Boolean Case

Então... Nossa president(a) sai ou não sai.

Salve Devs!!

Dilma

Dado nossa situação atual de indecisão sobre o caso da nossa president(a) Dilma! Decidi trazer essa pergunta em forma de um problema de lógica para o nosso contexto de exatas.

Elaborei um problema de lógica simples (por pura limitação intelectual rs), mas não simples ao ponto FizzBuzz.

Nesse problema de lógica temos os seguintes personagens: A president(a), os deputados munidos de sua opinião sobre o caso, onde cada deputado pode ser influente ou não.

Dado o cenário, nosso sistema deve prever o resultado desta votação.

Espero vocês lá na DTM!

def msg = ['s': 'Tchau Querida!!', 'n': 'Não vai ter golpe!!']
def dilmometro(d){    
    def isUpper = {String c -> c == c.toUpperCase()}
    s = ''
    d.eachWithIndex{o, i -> s += ((i>0)&&isUpper(d[i-1])) ? d[i-1].toLowerCase() : o.toLowerCase() }
    s.split{ it == 's' }.sort{a, b -> a.size()<=>b.size()}[-1][-1]
}

assert 'Não vai ter golpe!!' == msg[dilmometro('sn'   )]
assert 'Não vai ter golpe!!' == msg[dilmometro('snn'  )]
assert 'Tchau Querida!!'     == msg[dilmometro('ssn'  )]
assert 'Não vai ter golpe!!' == msg[dilmometro('sN'   )]
assert 'Tchau Querida!!'     == msg[dilmometro('Sn'   )]
assert 'Não vai ter golpe!!' == msg[dilmometro('nS'   )]
assert 'Não vai ter golpe!!' == msg[dilmometro('sNs'  )]
assert 'Tchau Querida!!'     == msg[dilmometro('nSn'  )]
assert 'Não vai ter golpe!!' == msg[dilmometro('nnS'  )]
assert 'Não vai ter golpe!!' == msg[dilmometro('NnSn' )]
assert 'Tchau Querida!!'     == msg[dilmometro('sNnSn')]
assert 'Não vai ter golpe!!' != msg[dilmometro('sNnSn')]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment