Sobes.tech
Intern

# Gegeven een string bestaande uit de letters 'X', 'Y' en 'O'. # Het is nodig om de kortste afstand tussen de letters 'X' en 'Y' te vinden, # of 0 te retourneren als 'X' of 'Y' niet aanwezig zijn. # "YY" -> 0 # "XX" -> 0 # "XY" -> 1 # "YOX" -> 2 # "OOOXOOYOXO" -> 2 # "OOOXXOY" -> 2 def distance(string: str) -> int:

sobes.tech AI

Antwoord van AI

def afstand(string: str) -> int: # Controleren of 'X' en 'Y' in de string aanwezig zijn if 'X' not in string or 'Y' not in string: return 0

posities_x = [i for i, ch in enumerate(string) if ch == 'X']
posities_y = [i for i, ch in enumerate(string) if ch == 'Y']

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

# Gebruik twee pointers om de minimale afstand te vinden
while i < len(posities_x) and j < len(posities_y):
    afstand = abs(posities_x[i] - posities_y[j])
    if afstand < min_afstand:
        min_afstand = afstand

    # Verplaats de pointer om een kleinere afstand te vinden
    if posities_x[i] < posities_y[j]:
        i += 1
    else:
        j += 1

return min_afstand