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 ελάχιστη_απόσταση