Intern
# Duota eilutė sudaryta iš raidžių 'X', 'Y' ir 'O'. # Reikia rasti trumpiausią atstumą tarp raidžių 'X' ir 'Y', # arba grąžinti 0, jei 'X' arba 'Y' nėra. # "YY" -> 0 # "XX" -> 0 # "XY" -> 1 # "YOX" -> 2 # "OOOXOOYOXO" -> 2 # "OOOXXOY" -> 2 def distance(string: str) -> int:
sobes.tech AI
Atsakymas iš AI
def atstumas(string: str) -> int: # Patikriname, ar eilutėje yra 'X' ir 'Y' if 'X' not in string or 'Y' not in string: return 0
pozicijos_x = [i for i, ch in enumerate(string) if ch == 'X']
pozicijos_y = [i for i, ch in enumerate(string) if ch == 'Y']
mažiausias_atstumas = float('inf')
i, j = 0, 0
# Naudojame du rodiklius, kad rastume mažiausią atstumą
while i < len(pozicijos_x) and j < len(pozicijos_y):
atstumas = abs(pozicijos_x[i] - pozicijos_y[j])
if atstumas < mažiausias_atstumas:
mažiausias_atstumas = atstumas
# Judiname rodiklius, kad rastume mažesnį atstumą
if pozicijos_x[i] < pozicijos_y[j]:
i += 1
else:
j += 1
return mažiausias_atstumas