-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRange_Extraction.php
35 lines (29 loc) · 940 Bytes
/
Range_Extraction.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
function solution(array $list): string {
$arrayAux = [];
$resultado = "";
foreach ($list as $value) {
if (empty($arrayAux) || end($arrayAux) === $value - 1) {
$arrayAux[] = $value;
} else {
if (count($arrayAux) > 2) {
$resultado .= "$arrayAux[0]-{$arrayAux[count($arrayAux) - 1]},";
} else if (count($arrayAux) === 1) {
$resultado .= "$arrayAux[0],";
} else {
$resultado .= "$arrayAux[0],$arrayAux[1],";
}
$arrayAux = [];
$arrayAux[] = $value;
}
}
// Agrega el último rango o números al resultado
if (!empty($arrayAux)) {
if (count($arrayAux) > 2) {
$resultado .= "$arrayAux[0]-{$arrayAux[count($arrayAux) - 1]}";
} else {
$resultado .= implode(",", $arrayAux);
}
}
return $resultado;
}