Sobes.tech
Intern

# Dată o șir format din literele 'X', 'Y' și 'O'. # Este necesar să găsiți cea mai scurtă distanță între literele 'X' și 'Y', # sau să returnați 0 dacă 'X' sau 'Y' lipsesc. # "YY" -> 0 # "XX" -> 0 # "XY" -> 1 # "YOX" -> 2 # "OOOXOOYOXO" -> 2 # "OOOXXOY" -> 2 def distance(string: str) -> int:

sobes.tech AI

Răspuns de la AI

def distanță(string: str) -> int: # Verificăm dacă 'X' și 'Y' sunt în șir if 'X' not in string or 'Y' not in string: return 0

poziții_x = [i for i, ch in enumerate(string) if ch == 'X']
poziții_y = [i for i, ch in enumerate(string) if ch == 'Y']

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

# Folosim doi indicatori pentru a găsi distanța minimă
while i < len(poziții_x) and j < len(poziții_y):
    distanță = abs(poziții_x[i] - poziții_y[j])
    if distanță < dist_min:
        dist_min = distanță

    # Mutăm indicatorul pentru a găsi o distanță mai mică
    if poziții_x[i] < poziții_y[j]:
        i += 1
    else:
        j += 1

return dist_min