public class Solution
{
public static List<string> CounterRanges(List<int> counter)
{
int l = 0;
int r = 0;
List<string> result = new List<string>();
while (l < counter.Count)
{
while (r + 1 < counter.Count && counter[r] + 1 == counter[r + 1])
{
r += 1;
}
if (r != l)
{
string range = counter[l] + "->" + counter[r];
result.Add(range);
}
else
{
result.Add(counter[l].ToString());
}
l = r + 1;
r = r + 1;
}
return result;
}
}
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
vector<string> counterRanges(const vector<int>& counter) {
int l = 0;
int r = 0;
vector<string> result;
while (l < counter.size()) {
while (r + 1 < counter.size() && counter[r] + 1 == counter[r + 1]) {
r += 1;
}
if (r != l) {
string range = std::to_string(counter[l]) + "->" + std::to_string(counter[r]);
result.push_back(range);
} else {
result.push_back(std::to_string(counter[l]));
}
l = r + 1;
r = r + 1;
}
return result;
}
package main
import "fmt"
func counterRanges(counter []int) []string {
l := 0
r := 0
result := make([]string, 0)
for l < len(counter) {
for r + 1 < len(counter) && counter[r] + 1 == counter[r + 1] {
r += 1
}
if r != l {
result = append(result, fmt.Sprintf("%d->%d", counter[l], counter[r]))
} else {
result = append(result, fmt.Sprintf("%d", counter[l]))
}
l = r + 1
r = r + 1
}
return result
}
import java.util.*;
public class Solution {
public List<String> counterRanges(List<Integer> counter) {
int l = 0;
int r = 0;
List<String> result = new ArrayList<>();
while (l < counter.size()) {
while (r + 1 < counter.size() && counter.get(r) + 1 == counter.get(r + 1)) {
r += 1;
}
if (r != l) {
String range = String.format("%d->%d", counter.get(l), counter.get(r));
result.add(range);
} else {
result.add(String.format("%d", counter.get(l)));
}
l = r + 1;
r = r + 1;
}
return result;
}
}
from typing import *
def counter_ranges(counter: List[int]) -> List[str]:
l = 0
r = 0
result = []
while l < len(counter):
while r + 1 < len(counter) and counter[r] + 1 == counter[r + 1]:
r += 1
if r != l:
result.append(f'{counter[l]}->{counter[r]}')
else:
result.append(f'{counter[l]}')
l = r + 1
r = r + 1
return result
export function counterRanges(counter) {
let l = 0;
let r = 0;
let result = [];
while (l < counter.length) {
while (r + 1 < counter.length && counter[r] + 1 === counter[r + 1]) {
r += 1;
}
if (r !== l) {
let range = counter[l] + "->" + counter[r];
result.push(range);
} else {
result.push(counter[l].toString());
}
l = r + 1;
r = r + 1;
}
return result;
}