Solución
solution.tsTypeScript
import re
def compress_to_ranges(numbers: list[int]) -> str:
if not numbers:
return ""
str_range = f"{numbers[0]}"
begin_range = numbers[0]
i,n = 1, len(numbers)
while i < n:
end_range = numbers[i]
difference = end_range - begin_range
if difference == 1 or difference == -1:
temp_str = f"-{end_range} "
while i < n:
i += 1
begin_range = end_range
end_range = numbers[i] if i < n else end_range
difference = end_range - begin_range
if difference > 1 or difference < -1:
break
temp_str = f"-{end_range} "
str_range += temp_str
else:
i += 1
str_range += f" {end_range}"
begin_range = end_range
numbers_list = re.findall(r"-?\d+--?\d+|-?\d+",str_range)
return ",".join(numbers_list)0respuestas