Sobes.tech
Intern

# Берилген жол 'X', 'Y' жана 'O' тамгаларынан турат. # 'X' жана 'Y' тамгаларынын арасындагы эң кыска аралыкты табуу керек, # же 'X' же 'Y' жок болсо 0 кайтаруу керек. # "YY" -> 0 # "XX" -> 0 # "XY" -> 1 # "YOX" -> 2 # "OOOXOOYOXO" -> 2 # "OOOXXOY" -> 2 def distance(string: str) -> int:

sobes.tech AI

AIден жооп

def аралыктары(string: str) -> int: # Текстте 'X' жана 'Y' бар экенин текшеребиз if 'X' not in string or 'Y' not in string: return 0

орундар_x = [i for i, ch in enumerate(string) if ch == 'X']
орундар_y = [i for i, ch in enumerate(string) if ch == 'Y']

эң кичинекей аралык = float('inf')
i, j = 0, 0

# Эки көрсөткүчтү колдонуп эң кичинекей аралыктын табуу
while i < len(орундар_x) and j < len(орундар_y):
    аралык = abs(орундар_x[i] - орундар_y[j])
    if аралык < эң кичинекей аралык:
        эң кичинекей аралык = аралык

    # Кичинекей аралыктарды табуу үчүн көрсөткүчтөрдү жылдырабыз
    if орундар_x[i] < орундар_y[j]:
        i += 1
    else:
        j += 1

return эң кичинекей аралык