Sobes.tech
Intern

# Дадана е низ, съставен от буквите 'X', 'Y' и 'O'. # Необходимо е да се намери най-краткото разстояние между буквите 'X' и 'Y', # или да се върне 0, ако 'X' или 'Y' липсват. # "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 хурсан_арақаш