Sobes.tech
Intern

# Dotajā virknes sastāv no burtiem 'X', 'Y' un 'O'. # Ir jāatrod īsākais attālums starp burtiem 'X' un 'Y', # vai jāatgriež 0, ja 'X' vai 'Y' nav. # "YY" -> 0 # "XX" -> 0 # "XY" -> 1 # "YOX" -> 2 # "OOOXOOYOXO" -> 2 # "OOOXXOY" -> 2 def distance(string: str) -> int:

sobes.tech AI

Atbilde no AI

def attālums(string: str) -> int: # Pārbaudām, vai rindā ir 'X' un 'Y' if 'X' not in string or 'Y' not in string: return 0

pozīcijas_x = [i for i, ch in enumerate(string) if ch == 'X']
pozīcijas_y = [i for i, ch in enumerate(string) if ch == 'Y']

mazākais_attālums = float('inf')
i, j = 0, 0

# Izmantojam divus indikatorus, lai atrastu mazāko attālumu
while i < len(pozīcijas_x) and j < len(pozīcijas_y):
    attālums = abs(pozīcijas_x[i] - pozīcijas_y[j])
    if attālums < mazākais_attālums:
        mazākais_attālums = attālums

    # Pārvietojam indikatorus, lai atrastu mazāku attālumu
    if pozīcijas_x[i] < pozīcijas_y[j]:
        i += 1
    else:
        j += 1

return mazākais_attālums