Encontre o maior e o menor número em uma matriz


29

A tarefa

A tarefa é muito simples. Dada uma matriz que contém apenas números inteiros e seqüências de caracteres , produza o maior número e o menor número.

Casos de teste

Input: [1, 2, 3, 4, 5, 6, 7, 8]
Output: 1, 8

Input: [5, 4, 2, 9, 1, 10, 5]
Output: 1, 10

Input: [7, 8, 10, "Hello", 5, 5]
Output: 5, 10

Números em strings não são considerados números inteiros:

Input: [1, 2, 3, 4, "5"]
Output: 1, 4

Se houver apenas um número inteiro, ele será o número inteiro maior e menor:

Input: [1]
Output: 1, 1

Input: ["1", "2", "3", "4", 5]
Output: 5, 5

Regras

  • Você pode assumir que uma matriz sempre contém pelo menos um número inteiro.
  • Todos os números inteiros são positivos (maiores que 0)
  • A ordem da saída não importa.
  • Isso é , então a submissão com a menor quantidade de bytes ganha!
  • As strings podem conter todos os caracteres ASCII imprimíveis ( 32 - 126) e não estão vazias.

Como as strings que contêm aspas são representadas na entrada?
feersum

@feersum Isso não depende do seu idioma?
Martin Ender

@feersum Provavelmente, com caracteres de escape, mas se o idioma não lidar com isso, tudo bem.
Adnan

@ MartinBüttner Se a entrada for obtida do stdin, ela não deve depender do idioma usado.
feersum

3
@feersum Isso é novo para mim. Mesmo do STDIN [1, 2, 3] 1 2 3e {1; 2; 3}todos os formatos de entrada são válidos, não vejo por que deve ser diferente para os literais de string recebidos do STDIN.
Martin Ender

Respostas:


9

Sério, 9 6 bytes

,ì;M@m

Experimente Online

Como funciona

,                              Read list input
 ì                             Remove everything but numbers from it
  ;                            Make a copy
   m                           Extract its min value
    @M                         Extract the other one's max value
                               Implicit output (max then min)

Ah, sim, eu estava procurando por um comando desse tipo. Mas os documentos não são fáceis de pesquisar.
quintopia 06/02

Concordo. Os documentos são meu próximo grande objetivo.
Mego

11

JavaScript (ES6), 54 56

Editar 2 bytes salvos thx @Neil

Nota: x===+xé verdadeiro se e somente se xfor um número

a=>[Math.max(...a=a.filter(x=>x===+x)),Math.min(...a)]

3
Por que o exterior ()?
Neil

@ Neil o que exterior ()? Por que diabos eu deveria ter outer () s?
Edc65

Isso retorna uma função, você ainda precisa chamá-la. (ou apenas remover a =>)
Michael Theriot

2
Sim, é uma função anônima. É uma maneira muito comum para postar uma resposta em JavaScript @MichaelTheriot
edc65

@MichaelTheriot Por padrão , permitimos que os envios sejam funções independentes, em vez de sempre exigir programas completos.
Alex A.

8

Pitão, 14 11 10 bytes

hM_BS^I#1Q

Experimente online. Suíte de teste.

Explicação

  • Q: entrada avaliada
  • #: filtre isso em:
    • I: o valor é o mesmo depois de:
      • ^…1 elevando-o ao poder 1
  • S: classifique isso
  • _B: criar matriz [previous, reversed(previous)]
  • hM: pegue o primeiro item de cada item daquele

A parte mais difícil é jogar golfe na remoção de strings, que atualmente leva 4 bytes. A abordagem atual funciona devido ao ^<str>1uso do primeiro poder cartesiano da sequência (basicamente, a lista dos caracteres da string), mas ^<int>1é apenas a função de identidade.


Hrm, você também pode usar *#_1Qpara remover as cordas, o que seria mais curto se uma variável foi inicializada para um negativo ...
FryAmTheEggman

7

Python 2, 42 bytes

No Python 2, números inteiros são sempre menores que strings durante as comparações; portanto, um simples min(s)encontrará o menor número inteiro. Ao encontrar o máximo, precisamos primeiro filtrar as strings. A função anônima aceita uma sequência e retorna uma tupla com o mínimo e o máximo.

lambda s:(min(s),max(x for x in s if''>x))

Exemplo:

[1,'77', 6, '', 4] -> (1, 6)

3
Você precisa de um lambda a:preso antes disso.
Maçaneta

if x>0ou if''>xsalve um byte.
grc 05/02

@ Doorknob, agora lambda como sugerido.
Logic Knight

11
@ Dennis, eu não sabia disso. Eu editei a solução para tornar clara a comparação só funciona em Python 2.
Logic Cavaleiro

11
Criação: lambda s:(min(s),-min(-1*_ for _ in s))(39 bytes)
Fran Borcic 8/16

7

Gelatina, 8 bytes

|f¹Ṣ0,1ị

Experimente online!

fundo

Em um mundo perfeito, seria suficiente cruzar a lista com uma versão achatada de si mesma. Strings são simplesmente listas de caracteres no Jelly, portanto, enquanto a lista original contenha números inteiros e strings, a versão achatada conteria números inteiros e caracteres, deixando apenas os inteiros na interseção.

No mundo real, ambos os analisadores de ambos os literais de entrada e de cadeia produzir caracteres em vez de cordas de comprimento 1. A única maneira de passar uma cadeia Singleton para uma função seria para codificar o "manualmente", como, por exemplo, [”a]que é um caractere envolvido em uma matriz.

Isso salvaria um byte, com um total de 7 bytes ( Experimente online! ).

fFṢ0,1ị

Como isso provavelmente não é aceitável, também precisamos de uma maneira de diferenciar caracteres de números inteiros.

Os átomos bit a bit de Jelly tentam desesperadamente converter seus argumentos em números inteiros. Eles começam vetorizando até encontrar tipos de profundidade 0 (números ou caracteres) e tentam convertê-los em números inteiros. Para um caractere que representa um número inteiro, isso será bem-sucedido. Para outros, um átomo diádico bit a bit simplesmente desiste e retorna 0 .

Por exemplo, OR bit a bit a lista [1, "2", "34", "-5", "a", "bc"]consigo produzirá

[1, 2, [3, 4], [0, 5], 0, [0, 0]]

Ao cruzar o resultado com a lista original, nos livramos das matrizes e dos números inteiros que não estavam presentes na lista original.

Como funciona

|f¹Ṣ0,1ị  Main link. Input: A (list)

|         Bitwise OR the list A with itself.
 f¹       Filter the result by presence in A.
   Ṣ      Sort the resulting list of integers.
    0,1ị  Retrieve the elements at those indexes.
          Indices are 1-based and modular in Jelly, so 0 is the last (maximum),
          and 1 is the first (minimum).

6

Mathematica, 20 bytes

MinMax@*Select[#>0&]

Casos de teste

MinMax@*Select[#>0&]@{1,2,3,4,"5"}
(* {1,4} *)

11
Por que existe o *lá? Parece que você pode chegar aos 19 apenas cortando-o.
Um Simmons

11
@ASimmons É necessário. MinMax@Select[#>0&]não é uma função pura válida.
Njpipeorgan

11
@ASimmons @*é composição da função, enquanto @aplicação da função.
Martin Ender

11
MinMax@Select[# > 0 &][{1, 2, 3, 4, "Hello", 5}]produz uma resposta correcta
Um Simmons

11
@ASimmons Tente atribuir MinMax@Select[# > 0 &]a um símbolo ou apenas avaliá-lo.
Njpipeorgan

6

Ruby, 57 36 29 bytes

Novato aqui, então eu não sei se existe algum lugar / maneira padrão ou universalmente aceito para calcular os bytes usados, qualquer ajuda seria muito apreciada!

Editado de acordo com o manatwork e o comentário da maçaneta da porta!

->n{(n.map(&:to_i)&n).minmax}

Teste

2.3.0 :076 > f=->n{[(n.map(&:to_i) & n).min, (n.map(&:to_i) & n).max]}
 => #<Proc:0x007ff7650ee868@(irb):76 (lambda)>
2.3.0 :077 > f[[7, 8, 10, "Hello", 5, 5]]
 => [5, 10]

11
36 caracteres:->n{[(x=n.map(&:to_i)&n).min,x.max]}
manatwork 05/02

2
29 bytes, usando minmax:->a{(a.map(&:to_i)&a).minmax}
Maçaneta da porta

5

CJam, 15 13 bytes

{_:z&$2*_,(%}

Um bloco sem nome (função) que espera a matriz de entrada na pilha e deixa a matriz de saída em seu lugar.

Execute todos os casos de teste.

Explicação

_     e# Duplicate.
:z    e# Map over list: a) take abs() of integer elements (a no-op) or b) wrap strings
      e# in an array.
&     e# Set intersection: only the integers will appear in both arrays.
$     e# Sort.
2*    e# Repeat array twice (to make the code work with single-integer input).
_,    e# Duplicate, get length N.
(%    e# Decrement, get every (N-1)th element, i.e. the first and the last.

I sugeested e) e E (para aditsu Ele não aceitou isso.
username.ak

@ username.ak Não acho que sejam realmente úteis. Adicionar um operador de dois caracteres que economiza apenas um byte na solução atual não é algo que o aditsu provavelmente implementará, e também acho que deve haver recursos mais úteis para usá-los.
Martin Ender

ele salvará 3 bytes:q~_e(ae)a+
username.ak

@ username.ak Bem, isso pressupõe isso e(e e)ignoraria as strings ou algo assim, o que parece inconsistente. E se envolvesse comparação com strings, provavelmente falharia da mesma maneira que $e e>não poderá comparar números inteiros com strings.
Martin Ender

5

Haskell, 41 39 bytes

f x=[minimum,maximum]<*>[[i|Left i<-x]]

No Haskell, todos os elementos de uma lista devem ser do mesmo tipo, portanto não posso misturar Integere String. No entanto, existe o Eithertipo de combinação de dois tipos em um único. A lista de entrada é, portanto, do tipo Either Integer String1 . ffiltra os números inteiros, remove o Eitherwrapper, coloca a lista como elemento único em uma nova lista (por exemplo [[1,2,3]]), para que <*>possa aplicar as funções fornecidas no primeiro argumento a ele.

Exemplo de uso: f [Left 1, Left 3, Right "Hello", Left 2]-> [1,3].

Edit: @xnor entrou <*>em jogo e salvou 2 bytes. Obrigado!


1 na verdade, é totalmente polimórfico no segundo tipo que a Stringpropriedade nunca é utilizado.


Boa ideia com a correspondência de padrões. Você pode salvar dois caracteres com um mapa invertido:f x=[minimum,maximum]<*>[[i|Left i<-x]]
xnor

@ xnor: muito bom. Muito obrigado!
nimi


4

Mathematica, 28 bytes

MinMax[#/._String->Nothing]&

Ainda não entendo sua obsessão por Nothing... Isso não significa nada de especial ... Além disso, por 23 bytes:MinMax@*Select[NumberQ]
LegionMammal978 5/16

@ LegionMammal978 Faça uso de "todos os números inteiros são positivos"! Veja minha resposta.
Njpipeorgan

11
Boas soluções pessoal, eu deveria ter pensado em fazê-lo dessa maneira! @ LegionMammal978, Nothingtem um significado especial. Desde o Mathematica 10.2, ele é removido automaticamente das Listas.
A Simmons

@ LegionMammal978 Nothingé uma função documentada nas últimas versões.
Mr.Wizard

4

PHP, 50 48 bytes

<?=min($a=array_filter($a,is_int)).', '.max($a);

11
Bata-me por 2 minutos :).
TMH

2
Geralmente é proibido supor que a entrada já esteja em uma variável. A propósito, você pode salvar dois bytes removendo o 'around is_int.
Blackhole

@Blackhole Thanks. Não percebi. Eu tenho utilizado a sua remoção Citação :)
PaulSkinner

4

Retina , 71

Obrigado (como sempre) a @ MartinBüttner pela ajuda no golfe.

Não é competitivo em termos de golfe, mas é interessante implementar a classificação de bolhas inteiras na Retina.

Assume que todas as seqüências de caracteres na entrada são "aspas duplas e não contêm aspas duplas de escape \".

A`"
¶

\d+
$&$*a $&$*a
+`\b(a+) +\1(a+)\b
$1$2 $1
 +[a ]+ +

(a)+
$#1

A entrada é separada por nova linha.

Experimente online.


Eu acho que você pode usar <space>.*<space>no penúltimo estágio por causa da ganância.
FryAmTheEggman 12/02

4

Mathematica , 14

#&@@@MinMax@#&

Exemplo:

tests = {
   {1, 2, 3, 4, 5, 6, 7, 8},
   {5, 4, 2, 9, 1, 10, 5},
   {7, 8, 10, "Hello", 5, 5},
   {1, 2, 3, 4, "5"},
   {1},
   {"1", "2", "3", "4", 5}
 };

# & @@@ MinMax@# & /@ tests
{{1, 8}, {1, 10}, {5, 10}, {1, 4}, {1, 1}, {5, 5}}

Explicação:

Quando MinMaxrecebe entrada não numérica, reduz o problema o máximo que pode e deixa os termos agrupados Mine Max:

MinMax @ {7, 8, 10, "Hello", 5, 5}
{Min[5, "Hello"], Max[10, "Hello"]}

Devido à ordem automática que ocorre, as seqüências seguem números inteiros.

Applyat levelspec {1}, abreviação @@@, é então usado para puxar o primeiro argumento de elementos não atômicos. Observe que não 5é tocado aqui:

foo @@@ {5, Max[10, "Hello"]}
{5, foo[10, "Hello"]}

3

Oracle SQL 11.2, 189 bytes

SELECT MIN(TO_NUMBER(i)),MAX(TO_NUMBER(i))FROM(SELECT REGEXP_SUBSTR(:1,'[^,]+',1,LEVEL)i FROM DUAL CONNECT BY LEVEL<REGEXP_COUNT(:1,',')+2)WHERE TRIM(TRANSLATE(i,' 0123456789',' '))IS NULL;

Sem golfe

SELECT MIN(TO_NUMBER(i)),MAX(TO_NUMBER(i)) 
FROM  (
        SELECT REGEXP_SUBSTR(:1,'[^,]+',1,LEVEL)i 
        FROM   DUAL 
        CONNECT BY LEVEL<REGEXP_COUNT(:1,',')+2
      )
WHERE TRIM(TRANSLATE(i,' 0123456789',' '))IS NULL;

A subconsulta analisa a matriz e a divide para preencher uma visualização com um elemento por linha. Em seguida, os elementos não numéricos são filtrados.

Eu gostaria de ter encontrado uma maneira de fazê-lo com MENOS e MAIORES, mas sem sorte em como lidar com a matriz como um parâmetro.


Você está deixando o []na matriz para não selecionar o máximo ou o mínimo se eles são o primeiro ou o último elemento da matriz. Você também não precisa da sua cláusula WHERE, já está selecionando agregados para não precisar filtrar. Procure por caracteres numéricos em suas regexes e empurre a conversão de número para baixo para a subconsulta (muito pouco perigo de predicados enviados) e ela se torna 126 bytes: #select min(i),max(i)from(select to_number(regexp_substr(&1,'\d+',1,level))i from dual connect by level<=regexp_count(&1,'\d'))
Ben Ben

Não há necessidade de um +no segundo regex aqui, pois não importa se você gera algumas linhas extras (salva um byte). Também é importante notar que, se você tiver uma string composta exclusivamente por números, não a ignorará aqui; que precisa de funções sobrecarregadas no mesmo pacote, então não é nada bonito.
Ben

3

vimscript, 25 bytes

g/"/d
sort n
t.
t.
2,$-1d

Sim, isso mesmo, vimscript.

Espera entrada no formulário

1
2
3
4
"5"

E saídas na forma

1
4

Explicação:

g/"/d    delete all lines that contain quotes
sort n   sort numerically
t.       duplicate the first line
t.       duplicate it again
2,$-1d   delete from line 2 to line (END-1)

A primeira linha precisa ser duplicada duas vezes para lidar com o caso de extremidade de uma entrada de um único número. Isso ocorre porque o último comando irá reclamar se houver apenas duas linhas quando for atingido, uma vez que acaba sendo 2,1dum intervalo para trás.


3

Perl 44 39 + 3 = 41 bytes

@a=sort{$a-$b}grep!/"/,@F;$_="@a[0,-1]"

Requer -pasinalizadores:

$ perl -pae'@a=sort{$a-$b}grep!/"/,@F;$_="@a[0,-1]"' <<< '1 2 3 5 4'
1 5
$ perl -pae'@a=sort{$a-$b}grep!/"/,@F;$_="@a[0,-1]"' <<< '1 2 3 4 "5"'
1 4

Graças a @manatwork por remover alguns bytes


Qual versão do Perl? Para o seu segundo exemplo, obtenho um resultado diferente: pastebin.com/judJys5g
manatwork

@manatwork Você está correto, a Figura não consigo removersort{$a-$b}grep...
andlrc

O requisito não declara que a saída deve ser formatada exatamente como nos exemplos e, nesta tarefa, claramente não é a formatação. Muitos de nós apenas usamos o que há de mais prático em nosso idioma de escolha. Em Perl eu faria isso como este: $_="@a[0,-1]".
Manatwork

Um personagem mais curto filtragem: grep!/"/.
Manatwork

Diz que a matriz será números e seqüências de caracteres. Todos os exemplos da pergunta estão com cadeias de caracteres entre aspas duplas, mas não vejo nada dizendo que elas não possam ser citadas com uma única frase. Eu acho que !/\D/é necessário em vez de !/"/, por mais um byte.
Msh210

3

Julia, 35 bytes

x->extrema(filter(i->isa(i,Int),x))

Esta é uma função lambda que aceita uma matriz e retorna uma tupla de números inteiros. Para chamá-lo, atribua-o a uma variável.

Julia possui uma função extremainterna para obter os elementos mínimo e máximo de uma matriz como uma tupla. No entanto, como o array também pode ter cadeias, primeiro precisamos filtrá-las. Podemos fazer isso testando se cada elemento é um número inteiro usando isa.


3

Japonês, 23 bytes

[V=Uf_bZÃn@X-Y})g Vw g]

Teste online!

Como funciona

[V=Uf_  bZÃ n@  X-Y})g Vw g]
[V=UfZ{ZbZ} nXY{X-Y})g Vw g]

UfZ{ZbZ}   // Filter out the items Z in U where Z.b(Z) is falsy.
           // For numbers, this the original number, which is always non-0 (non-falsy).
           // For strings, this returns Z.indexOf(Z), which is always 0 (falsy).
nXY{X-Y}   // Sort by subtraction. Small items move to the front, large to the back.
V=         // Set variable V to the resulting array.
)g Vw g    // Take the first item in V, and the first in V.reverse().
[       ]  // Wrap them in an array so both are sent to output.

3

Bash, 40 31 30 bytes

sort -n|sed /\"/d|sed '1p;$p;d'

Requer uma lista separada por linhas:

$ echo $'5\n4\n2\n9\n1\n"10"\n5' | sort -n|sed /\"/d|sed '1p;$p;d'
1
9

Graças a @manatwork para eliminar alguns bytes


sed '1p;$p;d'salva um byte.
Dennis

3

PowerShell, 53 36 bytes

@($args[0]|?{$_-is[int]}|sort)[0,-1]

Guardado 17 bytes graças a @goric

OOOF ... O PowerShell geralmente joga muito rápido e com folga na fundição, o que normalmente é uma coisa boa para o golfe, mas prejudica aqui.

Pega nossa entrada $args[0]e a coloca em uma Where-Objectdeclaração (the ?) que seleciona apenas números inteiros e os passa pelo pipeline, descartando qualquer outra coisa. Como a re-conversão dinâmica ocorre em segundo plano para você (por exemplo, 1+"5"retornar o 6PowerShell perfeitamente válido), precisamos usar o -isoperador para diferenciar os tipos de dados.

A partir daí, canalizamos essa coleção Sort-Object, que classificará os números inteiros do menor para o maior. O externo ()é necessário para que possamos referenciar o primeiro e o último elemento com [0,-1](ou seja, o menor e o maior), mas observe que também precisamos do exterior @para forçar o lançamento da saída sortcomo uma matriz se houver apenas um objeto (como resultado de o ?, ou apenas um objeto foi inserido).


11
Dê uma olhada no -isoperador de tipo aqui . Eu acho que você poderia substituir .GetType().Name-eq"Int32"com -is[int]a economia de 17 bytes
Gorić

@goric Super impressionante! Obrigado pelo golfe enorme!
AdmBorkBork 8/16

3

MATL , 23 bytes

"@Y:tX%1)2\?x]N$htX<wX>

Experimente online!

"       % implicitly input cell array. For loop that iterates on each cell
  @     %   push each cell
  Y:    %   cell's contents (either a number or a string)
  tX%   %   duplicate and push class. This will produce 'char'  or 'double'
  1)    %   get first letter: either 'c' or 'd'
  2\    %   is its ASCII code odd?
  ?     %   if so...
    x   %     delete (it's a string)
  ]     %   end if
  N$h   %   concatenate all stack into an array. This array will contain up to
        %   three numbers: minimum up to now, maximum up to now, new value (if any)
  tX<   %   duplicate. Push minimum
  wX>   %   swap. Push maximum.
        % implicitly end for
        % implicitly display stack contents

Oh, meu mal: p. Resposta agradável embora :)
Adnan

@Adnan Thanks! Um pouco longo demais :-)
Luis Mendo

2

JavaScript (ES5), 105 bytes

function a(b){m=Math;b=b.filter(function(c){return c===+c});alert(m.min.apply(m,b)+','+m.max.apply(m,b))}

Uso: a([1,2,3,'4'])

Apenas tentando :)

"Ungolfed":

function a(b){
  m=Math;
  b=b.filter(function(c){
    return c===+c
  });
  alert(m.min.apply(m,b) + ',' + m.max.apply(m,b))
}

2

Pitão, 11 bytes

hJSf!>TkQeJ

Explicação:

   f    Q   - filter([V for T in >], Q)
    !>Tk    - not(T>"")
  S         - sorted(^)
hJ       eJ - print first and last element

Experimente aqui!


2

Perl 6 , 25 bytes

A resposta óbvia seria essa lambda WhateverCode

*.grep(Int).minmax.bounds

Se tiver que ser um programa completo

put get.words».&val.grep(Int).minmax.bounds

A entrada para este programa completo é uma lista de valores separados por espaço


Uso

# give it a lexical name
my &code = *.grep(Int).minmax.bounds;

say code [1, 2, 3, 4, 5, 6, 7, 8];  # (1 8)
say code [5, 4, 2, 9, 1, 10, 5];    # (1 10)
say code [7, 8, 10, "Hello", 5, 5]; # (5 10)
say code [1, 2, 3, 4, "5"];         # (1 4)
say code [1];                       # (1 1)
say code ["1", "2", "3", "4", 5];   # (5 5)

say code []; # (Inf -Inf)

2

, 16 caracteres / 20 bytes

[МƲ(ï⇔⒡≔=+$⸩,МƵï

Try it here (Firefox only).

Nada mal nada mal...

Explicação

Isso gera uma matriz contendo o máximo e o mínimo. (ï⇔⒡≔=+$⸩,basicamente filtra todas as strings da entrada, МƲobtém o máximo na entrada e МƵobtém o mínimo.

Apenas uma observação: este é o primeiro desafio em que uso , que basicamente se ï⇔transforma ï=ï.


2

Python 3, 56 bytes

lambda x:[m(t for t in x if str(t)!=t)for m in(min,max)]

Experimente online no Ideone .


2

APL (Dyalog) , 13 bytes

(⌊/,⌈/)⎕AV~⍨∊

Experimente online!

 alistar (achatar - isso transforma todas as seqüências de caracteres em caracteres na grande lista)

⎕AV~⍨ remover todos os caracteres na Uma Tomic V ector (o conjunto de caracteres - números de folhas)

() Aplique a seguinte função tácita:

⌊/ o mínimo através

, anexado a

⌈/ o máximo através


2

Java (OpenJDK 8) , 124 bytes

a->{int s[]={0,0},t;for(Object i:a)try{t=(int)i;s[0]=s[0]<1|t<s[0]?t:s[0];s[1]=s[1]<t?t:s[1];}catch(Exception e){}return s;}

Experimente online!

A função Java 8 lambda, recebe o array como entrada e fornece o array {min, max}. Não concorrente, porque a entrada deve ser uma matriz inteira.

Fixo e -1 byte graças a Kevin Cruijssen


Você pode fazer isso competindo tomando uma lista de objetos e verificando se um item é um número inteiro ou String.
Kevin Cruijssen

@KevinCruijssen done, thanks
HyperNeutrino

<iagora fornece um erro sem conversão de número inteiro. Além disso, seu código inicial (e este também) não funciona min, pois sempre será gerado 0para min. Aqui está uma solução possível. Edição: Try-catch parece ser 1 byte menor que o if(i instanceof Integer).
Kevin Cruijssen

@KevinCruijssen oh não percebeu isso, obrigado!
HyperNeutrino

1

Jolf, 20 bytes

Provavelmente posso jogar isso ... Preciso implementar soluções mais curtas de verificação de tipo.

γ fxd='nF~tH0ͺZkγZKγ
 _fx                 filter the input
    d='nF~tH0        checking for number type
γ                    call that "γ"
             ͺ       pair
              ZkγZKγ  the min and max of the array
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.