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 ամենափոքր_հեռավորություն