Su desafío es determinar si la entrada dada es un número entero, una cadena o un decimal.
Reglas
- Una cadena es cualquier entrada que no sea un número entero o flotante
- Un entero debe contener solo caracteres numéricos y no debe comenzar con un cero
- Un decimal es cualquier entrada que contiene el punto (
.
) y el período está rodeado de caracteres numéricos.
Nota: .01 no se considera un decimal válido.
- El programa debe generar una cadena sin formato, ya sea "cadena", "entero" o "decimal".
- Puede suponer que solo se utilizan caracteres ASCII imprimibles
Casos:
asdf -> string
asdf3.4 -> string
2 -> integer
2.0 -> decimal
02 -> string
40. -> string
. -> string
.01 -> string
0.0 -> decimal
.9.9.9 -> string
[empty space] -> string
EDITAR: se corrigió el error tipográfico. Me refería a .01 sin el cero inicial, no con. Si eso no lo dejó claro, ¡ya está arreglado!
Este es el código de golf , por lo que gana la respuesta más corta.
02
no se considera un número entero porque la mayoría de los idiomas recortan los ceros a la izquierda cuando el tipo es un integer
pero mantienen los ceros a la izquierda cuando se almacena como a string
. Aunque estoy con @isaacg que si 0.0
se considera un decimal, también 0.01
debería serlo. .01
sin contar tiene sentido, supongo ...