Intern
# Dat je niz sastavljen od slova 'X', 'Y' i 'O'. # Potrebno je pronaći najkraću udaljenost između slova 'X' i 'Y', # ili vratiti 0 ako 'X' ili 'Y' nedostaju. # "YY" -> 0 # "XX" -> 0 # "XY" -> 1 # "YOX" -> 2 # "OOOXOOYOXO" -> 2 # "OOOXXOY" -> 2 def distance(string: str) -> int:
sobes.tech АИ
Одговор од АИ
def udaljenost(string: str) -> int: # Provjeravamo postoji li 'X' i 'Y' u nizu if 'X' not in string or 'Y' not in string: return 0
pozicije_x = [i for i, ch in enumerate(string) if ch == 'X']
pozicije_y = [i for i, ch in enumerate(string) if ch == 'Y']
minimalna_udaljenost = float('inf')
i, j = 0, 0
# Koristimo dva pokazivača za pronalazak minimalne udaljenosti
while i < len(pozicije_x) and j < len(pozicije_y):
udaljenost = abs(pozicije_x[i] - pozicije_y[j])
if udaljenost < minimalna_udaljenost:
minimalna_udaljenost = udaljenost
# Pomicanjem pokazivača tražimo manju udaljenost
if pozicije_x[i] < pozicije_y[j]:
i += 1
else:
j += 1
return minimalna_udaljenost