Sobes.tech
Intern

# Dada una cadena que consiste en las letras 'X', 'Y' y 'O'. # Es necesario encontrar la distancia más corta entre las letras 'X' y 'Y', # o devolver 0 si 'X' o 'Y' no están presentes. # "YY" -> 0 # "XX" -> 0 # "XY" -> 1 # "YOX" -> 2 # "OOOXOOYOXO" -> 2 # "OOOXXOY" -> 2 def distance(string: str) -> int:

sobes.tech AI

Respuesta de la IA

def distancia(cadena: str) -> int: # Verificamos la presencia de 'X' y 'Y' en la cadena if 'X' not in cadena o 'Y' not in cadena: return 0

posiciones_x = [i for i, ch in enumerate(cadena) if ch == 'X']
posiciones_y = [i for i, ch in enumerate(cadena) if ch == 'Y']

min_dist = float('inf')
i, j = 0, 0

# Usamos dos punteros para buscar la distancia mínima
while i < len(posiciones_x) and j < len(posiciones_y):
    dist = abs(posiciones_x[i] - posiciones_y[j])
    if dist < min_dist:
        min_dist = dist

    # Avanzamos el puntero para encontrar una distancia menor
    if posiciones_x[i] < posiciones_y[j]:
        i += 1
    else:
        j += 1

return min_dist