Seu desafio hoje é receber contribuições como esta:
fbcfbee
ffcabbe
debceec
bccabbe
edcfbcd
daeaafc
eebcbeb
E produza a melhor jogada possível em um jogo parecido com Bejeweled que corresponderá a três ou mais letras, como esta (observe a capital B
e C
):
fbcfbee
ffcabbe
deBCeec
bccabbe
edcfbcd
daeaafc
eebcbeb
Especificações completas:
- A entrada será
n
composta por linhas den
letras minúsculas cada (onden
pode haver qualquer número). - A saída será a melhor jogada que você poderia fazer em um jogo de combinação 3, com as duas letras que você deseja trocar em maiúsculas.
As correspondências devem ter a seguinte prioridade (nesses exemplos,
.
indica um quadrado que não importa):Cinco em linha
xxYxx ..X..
Cinco em linha quebrada
X.. Yxx x.. x..
ou
.X. xYx .x. .x.
Quatro em linha
xYxx .X..
Três em linha
xYx .X.
Você deve encontrar a correspondência da prioridade mais alta e produzi-la.
- Se houver várias correspondências da mesma prioridade, você poderá produzir qualquer uma delas.
- Sempre haverá pelo menos uma correspondência (seu programa pode interromper se não houver correspondências ou fazer o que você quiser).
- A E / S pode estar em qualquer formato razoável (stdin / out, arquivos de leitura e gravação, argumentos de função / valores de retorno, caixas de diálogo etc.), mas NÃO codificado (como
x="[insert input here]"
). - Este é o código-golfe, pelo que o código mais curto em bytes vence. Se você usar algum acesso à rede por algum motivo, todos os bytes baixados da rede serão contabilizados na sua pontuação.
..x.\nxxYX\n..x.
?Respostas:
Python3.4, 772
(Usando guias para recuo, em vez de espaços.)
fonte
[c for c in l]
, você poderia simplesmente fazerlist(l)
.