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