Sobes.tech
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