Sua tarefa é pegar duas expressões polinomiais inteiras de variável única e multiplicá-las em sua expansão principal da esquerda para a direita não simplificada do primeiro termo (AKA FOIL no caso de binômios). Não combine termos semelhantes nem reordene o resultado. Para ser mais explícito sobre a expansão, multiplique o primeiro termo na primeira expressão por cada termo no segundo, em ordem, e continue na primeira expressão até que todos os termos tenham sido multiplicados por todos os outros termos. As expressões serão dadas em uma variante simplificada do LaTeX.
Cada expressão será uma sequência de termos separados por +
(com exatamente um espaço de cada lado). Cada termo estará em conformidade com a seguinte expressão regular: (notação PCRE)
-?\d+x\^\d+
Em inglês simples, o termo é um líder opcional -
seguido por um ou mais dígitos seguidos por x
e um número inteiro não negativo (com ^
)
Um exemplo de uma expressão completa:
6x^3 + 1337x^2 + -4x^1 + 2x^0
Quando conectado ao LaTeX, você obtém
A saída também deve estar em conformidade com este formato.
Como os colchetes não envolvem expoentes nesse formato, o LaTeX renderiza expoentes de vários dígitos incorretamente. (por exemplo, é 4x^3 + -2x^14 + 54x^28 + -4x^5
processado como ) Você não precisa dar conta disso e não deve incluir os colchetes na saída.
Casos de teste de exemplo
5x^4
3x^23
15x^27
6x^2 + 7x^1 + -2x^0
1x^2 + -2x^3
6x^4 + -12x^5 + 7x^3 + -14x^4 + -2x^2 + 4x^3
3x^1 + 5x^2 + 2x^4 + 3x^0
3x^0
9x^1 + 15x^2 + 6x^4 + 9x^0
4x^3 + -2x^14 + 54x^28 + -4x^5
-0x^7
0x^10 + 0x^21 + 0x^35 + 0x^12
4x^3 + -2x^4 + 0x^255 + -4x^5
-3x^4 + 2x^2
-12x^7 + 8x^5 + 6x^8 + -4x^6 + 0x^259 + 0x^257 + 12x^9 + -8x^7
Regras e premissas
- Você pode assumir que todas as entradas estão em conformidade com este formato exato. O comportamento para qualquer outro formato é indefinido para os propósitos deste desafio.
- Deve-se notar que qualquer método de captura dos dois polinômios é válido, desde que ambos sejam lidos como cadeias de caracteres em conformidade com o formato acima.
- A ordem dos polinômios é importante devido à ordem esperada da expansão do produto.
- Você deve suportar coeficientes de entrada entre e e expoentes de entrada até .
- Coeficientes de saída entre e e expoentes até devem, portanto, ser suportados.
- Você pode assumir que cada polinômio de entrada contém no máximo 16 termos
- Portanto, você deve (no mínimo) suportar até 256 termos na saída
- Termos com coeficientes zero devem ser deixados como estão, com os expoentes sendo combinados adequadamente
- O zero negativo é permitido na entrada, mas é indistinguível do zero positivo semântica. Sempre emita zero positivo. Não omita zero termos.
Golfe feliz! Boa sorte!