Um polinômio simétrico é um polinômio que é inalterado sob a permutação de suas variáveis.
Em outras palavras, um polinômio f(x,y)é simétrico se e somente se f(x,y) = f(y,x); um polinômio g(x,y,z)é simétrico iff g(x,y,z) = g(x,z,y) = g(y,x,z) = etc.
Por exemplo, x^2+2xy+y^2, xye x^3+x^2y+xy^2+y^3são polinômios simétricos, onde 2x+ye x^2+ynão são.
O desafio
Você receberá um polinômio e seu programa deve gerar valores de verdade / falsidade, dependendo se o polinômio fornecido for um polinômio simétrico.
O formato de entrada é permitido de duas maneiras. Uma string e uma matriz, como ["x^2","2xy","y^2"], em que o polinômio é a soma de cada elemento.
Exemplo
x^2+2xy+y^2 => true
xy => true
xy+yz+xz-3xyz => true
(x+y)(x-y) => false
2x+y => false
x^2+y => false
x+2y+3 => false
Especificações
A operação tem pedidos, assim como na matemática normal. a ordem é assim:
() => ^ => * => +-
aplicam -se regras de código de golfe .
Todos os caracteres do alfabeto ( a~z) são aceitos como variáveis, tudo o resto são números.
O polinômio fornecido terá 2 ou mais variáveis.
A multiplicação não requer o operador *, você só precisa detectar a justaposição. (a detecção por justaposição não é necessária, use a opção melhor)
() => ^ => */ => +-mas seus exemplos não mostram tudo isso. Eu teria imaginado que poderíamos esperar, -mas não /. Como você mencionou, ()devemos lidar com o formato (-1+x)(-y-3)?