LeetCode 8 Cadena a entero atoi es un ejercicio clásico de dificultad media que pide convertir una representación en texto de un número a su valor entero. Aunque parece sencillo, hay que gestionar espacios iniciales, signos positivos o negativos, detenerse ante caracteres no numéricos y respetar los límites de enteros con signo de 32 bits.

Requisitos principales Ignorar espacios iniciales Manejar signos iniciales detener la conversión al encontrar caracteres no numéricos y ajustar el resultado si excede los límites de 32 bits devolver cero cuando no haya dígitos válidos

Enfoque sencillo y eficiente La solución propuesta trabaja directamente con los caracteres de la cadena y utiliza índices para evitar operaciones costosas. Pasos principales Comprobar si la entrada es nula o vacía y devolver cero si procede Saltar espacios iniciales usando char IsWhiteSpace Detectar signo por defecto positivo y ajustar si aparece un signo más o menos Procesar dígitos convirtiendo cada carácter a su valor numérico y acumulando el resultado con comprobación de desbordamiento en cada paso Aplicar el signo y devolver el resultado final

Ejemplo de implementación en C#

public int MyAtoi(string s) { if (string.IsNullOrEmpty(s)) return 0; int idx = 0, end = s.Length; while (idx < end && char.IsWhiteSpace(s[idx])) idx++; if (idx == end) return 0; int sign = 1; if (idx < end && (s[idx] == 43 || s[idx] == 45)) { sign = s[idx] == 45 ? -1 : 1; idx++; } int result = 0; while (idx < end && char.IsDigit(s[idx])) { int digit = s[idx] - 48; if (result > (int.MaxValue - digit) / 10) return sign == 1 ? int.MaxValue : int.MinValue; result = result * 10 + digit; idx++; } return result * sign; }

Cómo funciona Gestión de espacios el bucle que usa char IsWhiteSpace omite los espacios iniciales Si la cadena queda vacía se devuelve cero Detección de signo asumimos positivo y si aparece un signo ajustamos sign Construcción del número cada carácter dígito se convierte restando 48 y se acumula multiplicando por 10 y sumando el dígito Comprobación de desbordamiento antes de añadir un nuevo dígito se verifica si la operación excedería int MaxValue para devolver el límite adecuado Aplicación del signo multiplicar por sign devuelve el valor negativo o positivo correspondiente

Rendimiento y buenos hábitos Esta implementación es limpia y evita operaciones de cadena costosas como Trim o subcadenas comprobando el desbordamiento de forma preventiva. En entornos de competición o entrevistas suele ofrecer tiempos de ejecución muy competitivos y un uso de memoria contenido.

Sobre Q2BSTUDIO

En Q2BSTUDIO somos una empresa de desarrollo de software y aplicaciones a medida especializada en crear soluciones a medida para clientes de todos los sectores. Ofrecemos servicios de software a medida y desarrollo de aplicaciones a medida, además de proyectos avanzados de inteligencia artificial para empresas. Nuestro catálogo incluye ciberseguridad y pentesting, servicios cloud aws y azure, servicios de inteligencia de negocio y Power BI, agentes IA, automatización de procesos y consultoría para implantar IA para empresas.

Si te interesa optimizar tus procesos, construir software a medida o explorar cómo la inteligencia artificial y la ciberseguridad pueden sumar valor a tu organización contacta con nosotros y descubre cómo podemos ayudarte a crear soluciones robustas y escalables.