Sobes.tech
Intern

# Zadaný řetězec se skládá z písmen 'X', 'Y' a 'O'. # Je třeba najít nejkratší vzdálenost mezi písmeny 'X' a 'Y', # nebo vrátit 0, pokud 'X' nebo 'Y' chybí. # "YY" -> 0 # "XX" -> 0 # "XY" -> 1 # "YOX" -> 2 # "OOOXOOYOXO" -> 2 # "OOOXXOY" -> 2 def distance(string: str) -> int:

sobes.tech AI

Odpověď od AI

def vzdialenosť(string: str) -> int: # Kontrolujeme, či sa v reťazci nachádzajú 'X' a 'Y' if 'X' not in string or 'Y' not in string: return 0

pozície_x = [i for i, ch in enumerate(string) if ch == 'X']
pozície_y = [i for i, ch in enumerate(string) if ch == 'Y']

minimálna_vzdialenosť = float('inf')
i, j = 0, 0

# Používame dva ukazovatele na nájdenie minimálnej vzdialenosti
while i < len(pozície_x) and j < len(pozície_y):
    vzdialenosť = abs(pozície_x[i] - pozície_y[j])
    if vzdialenosť < minimálna_vzdialenosť:
        minimálna_vzdialenosť = vzdialenosť

    # Posúvame ukazovateľ, aby sme našli menšiu vzdialenosť
    if pozície_x[i] < pozície_y[j]:
        i += 1
    else:
        j += 1

return minimálna_vzdialenosť