Salve Devs!!
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')]