Sobes.tech
Middle — Senior

Δημιουργήστε μια λειτουργία που δέχεται έναν πίνακα αριθμών και επιστρέφει μια συμβολοσειρά με τα εύρη διαδοχικών αριθμών;

sobes.tech AI

Απάντηση από AI

Παρακάτω υπάρχει ένα παράδειγμα συνάρτησης σε Python που λαμβάνει έναν ταξινομημένο πίνακα αριθμών και επιστρέφει μια συμβολοσειρά με εύρη αριθμών που είναι συνεχόμενοι. Οι συνεχόμενοι αριθμοί ενώνονται σε εύρη τύπου "αρχή-τέλος", και οι μεμονωμένοι αριθμοί εμφανίζονται όπως είναι.

def ranges_to_string(nums):
    if not nums:
        return ""

    εύρη = []
    αρχή = προηγούμενο = nums[0]

    for num in nums[1:]:
        if num == προηγούμενο + 1:
            προηγούμενο = num
        else:
            if αρχή == προηγούμενο:
                εύρη.append(str(αρχή))
            else:
                εύρη.append(f"{αρχή}-{προηγούμενο}")
            αρχή = προηγούμενο = num

    # Προσθέστε το τελευταίο εύρος
    if αρχή == προηγούμενο:
        εύρη.append(str(αρχή))
    else:
        εύρη.append(f"{αρχή}-{προηγούμενο}")

    return ",".join(εύρη)

# Παράδειγμα χρήσης
arr = [1, 2, 3, 5, 6, 8, 9, 10]
print(ranges_to_string(arr))  # Έξοδος: 1-3,5-6,8-10