public static Program instance;
public string OrdenaArray(params string[] args)
var resultado = string.Empty;
var ints = Array.ConvertAll(args, int.Parse);
foreach (var i in ints) resultado += $"{i},";
return resultado.Remove(resultado.Length - 1);
public string BuscaItensFaltantesNaSequencia(params string[] args)
var resultado = string.Empty;
string ordenados = args[0];
var arrayOrdenado = ordenados.Split(",");
var ints = Array.ConvertAll(arrayOrdenado, int.Parse);
int primeiro = ints.OrderBy(i => i).First();
int ultimo = ints.OrderBy(i => i).Last();
var rangeInts = Enumerable.Range(primeiro, ultimo - primeiro + 1).ToList();
var faltantes = rangeInts.Except(ints).ToList();
foreach (var i in faltantes) resultado += $"{i},";
return resultado.Remove(resultado.Length - 1);
public static void Main()
instance = instance ?? new Program();
var ordenado = instance.OrdenaArray("6", "3", "5", "4", "01", "7", "9");
var itensFaltantes = instance.BuscaItensFaltantesNaSequencia(ordenado);
var resultadoOrdenadoEsperado = "1,3,4,5,6,7,9";
var resultadoItensFaltantesEsperado = "2,8";
Console.WriteLine(ordenado == resultadoOrdenadoEsperado ? $"CORRETO {ordenado} == {resultadoOrdenadoEsperado}": $"INCORRETO {ordenado} != {resultadoOrdenadoEsperado}");
Console.WriteLine(itensFaltantes == resultadoItensFaltantesEsperado ? $"CORRETO {itensFaltantes} == {resultadoItensFaltantesEsperado}": $"INCORRETO {itensFaltantes} != {resultadoItensFaltantesEsperado}");