Problema
Você está preso em uma cabana no meio da floresta, com apenas uma velha brincadeira para se divertir. Após a inspeção, você vê que as letras do scrabble estão tão gastas que apenas os pontos de cada letra são visíveis.
No entanto, você decide jogar um jogo. Você puxa sete letras da sacola e as coloca em sua bandeja, seu desafio é determinar o que essas cartas podem ser.
Geralmente, dada uma lista de pontos, converta-a em qualquer sequência ou lista de letras possível.
Scrabble Tiles e Distribuições
- 2 peças em branco (marcando 0 pontos)
- 1 ponto: E × 12, A × 9, I × 9, O × 8, N × 6, R × 6, T × 6, L × 4, S × 4, U × 4
- 2 pontos: D × 4, G × 3
- 3 pontos: B × 2, C × 2, M × 2, P × 2
- 4 pontos: F × 2, H × 2, V × 2, W × 2, Y × 2
- 5 pontos: K × 1
- 8 pontos: J × 1, X × 1
- 10 pontos: Q × 1, Z × 1
Portanto, se você tiver uma lista de pontos [10,10,8,5,1,1,1]
, "QZJKEEE"
seria válido, mas "QQJKEEE"
não seria válido (pois há apenas 1 bloco Q na sacola)
Regras específicas de problemas
- Você pode assumir que todas as entradas são válidas e que sempre haverá 7 blocos (ou seja, não haverá uma lista de sete blocos de 10 pontos e não haverá 9 blocos)
- Você pode assumir que nenhum bloco foi retirado anteriormente da sacola (portanto, a distribuição é a distribuição padrão de blocos em inglês, conforme definido acima)
- Você não precisa gerar uma palavra válida, apenas uma sequência de letras válida.
- A ordem da sua string é irrelevante, desde que para cada bloco haja uma letra correspondente.
- Os pontos são baseados nos pontos padrão do scrabble em inglês, conforme definido acima.
- Você pode produzir em maiúsculas ou minúsculas; para um bloco em branco, você pode gerar um caractere de espaço ou um sublinhado '_'
- Sua resposta pode aparecer como qualquer representação razoável dos blocos, como Lista, String, Matriz ou Sequência
Regras gerais:
- Isso é código-golfe , então a resposta mais curta em bytes vence.
Não permita que idiomas com código de golfe o desencorajem a postar respostas com idiomas que não sejam codegolf. Tente encontrar uma resposta o mais curta possível para 'qualquer' linguagem de programação. - As regras padrão se aplicam à sua resposta com as regras de E / S padrão , para que você possa usar STDIN / STDOUT, funções / método com os parâmetros adequados e programas completos do tipo retorno. Sua chamada.
- As brechas padrão são proibidas.
- Se possível, adicione um link com um teste para o seu código (ou seja, TIO ).
- Além disso, é altamente recomendável adicionar uma explicação para sua resposta.
Casos de teste
Obviamente, como você pode gerar qualquer valor possível, é difícil definir casos de teste estritos.
Alguns casos com um possível valor de retorno válido :
[10,0,10,5,8,8,0] -> "Q ZKJX "
[1,1,1,1,1,1,1] -> "EEEEEEE"
[1,2,3,4,5,8,0] -> "NDBHKJ "
[2,2,2,2,2,2,2] -> "DGDGDGD"
Alguns casos com um valor de retorno inválido :
[10,0,10,5,8,8,0] -> "Q QKJX " - Too many Qs
[1,1,1,1,1,1,1] -> "EEEEEE " - Space is 0 points not 1
[1,2,3,4,5,8,0] -> "NDBH" - Too short
[1,2,3,4,5,8,0] -> "NDBHKJ I" - Too long
[1,2,3,4,5,8,0] -> "ÉDBHKJ1" - Contains none scrabble characters
[2,2,2,2,2,2,2] -> "GDGDGDG" - Contains too many Gs (case for invalid cycling)
[2,2,2,2,2,2,2]
(o único caso em que é importante começar com um D
e não com um G
método de ciclismo)