massa,
@massa@hachyderm.io avatar

235/01:

You are given an array of integers.

Write a script to find out if removing ONLY one integer makes it strictly increasing order.

my answer:

sub remove-one(@_@hachyderm.io) {  
 (^+@_@hachyderm.io).map({[<] @_@hachyderm.io[|(^$_), |($_+1 ..^ +@_@hachyderm.io)]}).any.so  
}  
duran,
@duran@bolha.one avatar

deleted_by_author

  • Loading...
  • massa,
    @massa@hachyderm.io avatar

    @duran é como ler em chinês ou árabe: se eu for na China, eu sou analfabeto e pronto (aliás, me senti assim até na Holanda e olha que o alfabeto é o mesmo)

    vou tentar destrinchar pra você:

    +@_ é o número de elementos no array @_
    ^+@_ são os índices do array (de zero a N-1 onde N = +@_)

    @_[|(^$), |($+1 ..^ +@_)] basicamente significa "o array @_, só que sem o item que tá na posição $_"

    [<] é um operador que retorna true se o array que for dado como argumento estiver estritamente ordenado

    massa,
    @massa@hachyderm.io avatar

    @duran Então, continuando:

    o (...).map(...) basicamente significa:

    quero uma lista que, pra cada índice do array @_, tenha True se e somente se o array @_ sem o item naquele índice estiver estritamente ordenado

    o .any.so retorna True se qualquer um dos itens for True

    é uma linguagem extremamente interessante para o processamento desse tipo de dados, porque já vem com as baterias incluídas 🙂

    e um screenshot pra ver se ajuda a compreensão:

    massa,
    @massa@hachyderm.io avatar

    @duran pra mim, esse one-liner é extremamente legível e, em português:

    "existe algum índice do array que foi passado para o qual o array sem o item nesse índice tá estritamente ordenado?"

    é assim rs

    duran,
    @duran@bolha.one avatar

    deleted_by_author

  • Loading...
  • massa,
    @massa@hachyderm.io avatar

    @duran é meu arroz-com-feijão, né? então ... mas agradeço a admiração 😉

  • All
  • Subscribed
  • Moderated
  • Favorites
  • raku
  • DreamBathrooms
  • InstantRegret
  • osvaldo12
  • magazineikmin
  • thenastyranch
  • rosin
  • mdbf
  • Youngstown
  • ngwrru68w68
  • slotface
  • everett
  • kavyap
  • Durango
  • Leos
  • megavids
  • khanakhh
  • ethstaker
  • GTA5RPClips
  • tacticalgear
  • normalnudes
  • modclub
  • cisconetworking
  • anitta
  • cubers
  • provamag3
  • tester
  • JUstTest
  • lostlight
  • All magazines