Intern
# Adott egy 'X', 'Y' és 'O' betűkből álló sztring. # Meg kell találni a 'X' és 'Y' betűk közötti legrövidebb távolságot, # vagy 0-t visszaadni, ha 'X' vagy 'Y' hiányzik. # "YY" -> 0 # "XX" -> 0 # "XY" -> 1 # "YOX" -> 2 # "OOOXOOYOXO" -> 2 # "OOOXXOY" -> 2 def distance(string: str) -> int:
sobes.tech MI
Válasz az MI-től
def távolság(string: str) -> int: # Ellenőrizzük, hogy 'X' és 'Y' szerepel-e a sztringben if 'X' not in string or 'Y' not in string: return 0
pozíció_x = [i for i, ch in enumerate(string) if ch == 'X']
pozíció_y = [i for i, ch in enumerate(string) if ch == 'Y']
legkisebb_távolság = float('inf')
i, j = 0, 0
# Két mutató segítségével keressük a legkisebb távolságot
while i < len(pozíció_x) and j < len(pozíció_y):
távolság = abs(pozíció_x[i] - pozíció_y[j])
if távolság < legkisebb_távolság:
legkisebb_távolság = távolság
# A mutató mozgatásával kisebb távolságot találunk
if pozíció_x[i] < pozíció_y[j]:
i += 1
else:
j += 1
return legkisebb_távolság