Convertir texto a entero (atoi)

Tiempo límite 2 s
Memoria límite 256 MB
Casos de prueba 6
Dificultad Medio Algoritmos
Mostrar (2) CadenasParsing
Enviar solución

Puntos: 10

Tipos de problema
Lenguajes permitidos
C, C++, Java, Python, Rust

Implementa la conversión de un texto a un entero de 32 bits con signo, siguiendo estas reglas en orden:

  1. Ignora los espacios del comienzo.
  2. Si el siguiente carácter es + o -, define el signo (por defecto es positivo). A lo más se lee uno.
  3. Lee los dígitos que siguen, hasta el primer carácter que no sea dígito o el final del texto. Los ceros a la izquierda no importan. Si no hay ningún dígito, el resultado es \(0\).
  4. Si el número queda fuera del rango \([-2^{31}, 2^{31} - 1]\), ajústalo al extremo más cercano.

Entrada

La primera línea tiene \(T\) \((1 \le T \le 2000)\) y siguen \(T\) líneas con un texto cada una, de entre \(1\) y \(200\) caracteres: letras, dígitos, espacios, +, - y .. Ningún texto está formado solo por espacios.

Salida

Para cada texto, el entero resultante.

Ejemplo 1

Entrada

5
42
   -042
1337c0d3
0-1
words and 987

Salida

42
-42
1337
0
0

Ejemplo 2

Entrada

4
-91283472332
+-12
2147483648
   +0 123

Salida

-2147483648
0
2147483647
0

Basado en el problema 8 de LeetCode, String to Integer (atoi), adaptado a entrada y salida estándar; enunciado redactado para este juez. Es parte de la lista Grind 75 de Yangshun Tay.


Comentarios

No hay comentarios por el momento.