Sobes.tech
Intern

# Data una stringa composta dalle lettere 'X', 'Y' e 'O'. # È necessario trovare la distanza più breve tra le lettere 'X' e 'Y', # oppure restituire 0 se 'X' o 'Y' sono assenti. # "YY" -> 0 # "XX" -> 0 # "XY" -> 1 # "YOX" -> 2 # "OOOXOOYOXO" -> 2 # "OOOXXOY" -> 2 def distance(string: str) -> int:

sobes.tech AI

Risposta dell'AI

def distanza(cadena: str) -> int: # Verifichiamo la presenza di 'X' e 'Y' nella stringa if 'X' not in cadena or 'Y' not in cadena: return 0

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

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

# Utilizziamo due puntatori per trovare la distanza minima
while i < len(posizioni_x) and j < len(posizioni_y):
    dist = abs(posizioni_x[i] - posizioni_y[j])
    if dist < min_dist:
        min_dist = dist

    # Spostiamo il puntatore per trovare una distanza più piccola
    if posizioni_x[i] < posizioni_y[j]:
        i += 1
    else:
        j += 1

return min_dist