Sobes.tech
Intern

# Verilmiş 'X', 'Y' və 'O' hərflərindən ibarət sətir. # 'X' və 'Y' hərfləri arasındakı ən qısa məsafəni tapmaq və ya 'X' və 'Y' yoxdursa 0 qaytarmaq lazımdır. # "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 ყველაზე პატარა მანძილი