Nota: Esto se inspira en esta pregunta de @Willbeing, donde la tarea consistía en contar el número de platos perfectos de cierta longitud, pero es ligeramente diferente.
Llamamos a una placa perfecta aquella placa cuyo texto cumple las siguientes condiciones:
- Se compone de caracteres, que pueden ser letras mayúsculas (
[A-Z]
) o dígitos ([0-9]
) - Sumando las posiciones de sus letras en el alfabeto inglés, 1 indexado (es decir:)
A=1,B=2,...,Z=26
da un número entero n - Obtener cada trozo de dígitos, sumarlos y luego multiplicar todos los resultados da el mismo resultado, n
- n es un cuadrado perfecto (por ejemplo:
49
(7 2 ) ,16
(4 2 ) )
Una matrícula casi perfecta cumple las condiciones para una matrícula perfecta, excepto que n no es un cuadrado perfecto.
Entrada
Una cadena que representa el texto de la matrícula, tomada como entrada en cualquier forma estándar, excepto para la codificación fija.
Salida
Si la cadena dada representa una placa casi perfecta , devuelva un valor verdadero (por ejemplo: True
/ 1
), de lo contrario, devuelva un valor falso (por ejemplo: False
/ 0
). Se acepta cualquier forma estándar de salida al tomar nota de que estas lagunas están estrictamente prohibidas.
Ejemplos
licence plate -> output
A1B2C3 -> 1
A + B + C = 1 + 2 + 3 = 6
1 * 2 * 3 = 6
6 is not a perfect square, 6 = 6 => nearly perfect plate
01G61 -> 1
(0 + 1) * (6 + 1) = 7
G = 7
7 is not a perfect square, 7 = 7 => nearly perfect plate
11BB2 -> 0
(1 + 1) * 2 = 4
B + B = 2 + 2 = 4
4 = 4, but 4 is the square of 2 => perfect license plate (not what we want)
67FF1 -> 0
(6 + 7) * 1 = 13
F + F = 6 + 6 = 12
12 != 13 => not perfect at all!
Puntuación
Este es el código de golf , por lo que gana la respuesta más corta en bytes.
n
es un cuadrado perfecto?
s/licence/license/ig
esto, tenga en cuenta que "licencia" es la ortografía correcta en inglés británico (así como en inglés en otras partes del mundo).