Connexes: dites-moi combien de problèmes mathématiques je dois faire!
Défi
Étant donné une liste d'entiers strictement positifs strictement ascendants L et un entier 3 ≤ N ≤ longueur de L, remplacez les entiers intermédiaires des séries entières consécutives de L de longueur ≥ N par un seul tiret -
.
Règles
- L'espace horizontal n'est pas pertinent.
- Vous pouvez éventuellement conserver les caractères introducteur, séparateur et terminateur du format de liste par défaut de votre langue. Voir Exemples de format , ci-dessous.
Exemples de données
Tous ces exemples utilisent L = 3 5 6 7 8 10 11 12 14 16 17 18 19 20 21 22 24
.
N = 3
→ 3 5 - 8 10 - 12 14 16 - 22 24
N = 4
→ 3 5 - 8 10 11 12 14 16 - 22 24
N = 5
→ 3 5 6 7 8 10 11 12 14 16 - 22 24
N = 8
→ 3 5 6 7 8 10 11 12 14 16 17 18 19 20 21 22 24
Exemples de format
Pour les entrées
L = [3,5,6,7,8,10,11,12,14,16,17,18,19,20,21,22,24]
et N = 3
toutes les lignes ci-dessous sont des exemples de réponses valides, à la fois sous forme de listes réelles et de chaînes:
[3,5,"-",8,10,"-",12,14,16,"-",22,24]
[3,5,-,8,10,-,12,14,16,-,22,24]
[3,5-8,10-12,14,16-22,24]
3,5-8,10-12,14,16-22,24
La même chose s'applique à d'autres formats de liste, comme {1 2 3}
et (1; 2; 3)
etc. En cas de doute? Demander!
-
ou sommes-nous autorisés à utiliser un autre symbole?_
pour pouvoir continuer à fonctionner sur des tableaux numériques en J.'-'
. Vous pourriez également être en mesure de tout filtrer avant d'insérer des tirets, non?[3,5,-8,10,-12,14,16,-22,24]
(cela semble être le format le plus logique en termes de types)Réponses:
Python 2 ,
132115 octets-17 octets grâce à Leaky Nun
Essayez-le en ligne!
la source
while t+i==x[i]:
marcherait? Ou est-ce que je manque quelque chose?i
la taille dex
Gelée ,
26 2523 octets-2 octets grâce à Erik l'Outgolfer (en introduisant l'instruction if dans le lien principal)
Un lien dyadique renvoyant une liste au
[3,5,"-",8,10,"-",12,14,16,"-",22,24]
format.Essayez-le en ligne! (le pied de page est séparé par des espaces pour imprimer le format d'exemple de données).
Comment?
la source
Pyth, 23 octets
Essayez-le en ligne
Comment ça marche
la source
Japt , 24 octets
Essayez-le en ligne!
Explication
la source
Mathematica, 128 octets
contribution
sortie
Essayez-le en ligne!
la source
APL, 38 octets
la source
PHP 7,
137 136 134 117 117 110108 octetsPrend
L
du premier argument, liste les éléments après cela. Courez avec-nr
ou essayez-le en ligne .Remplacez
$L=($a=$argv)
par$a=$argv,$L=
(+1 octet) pour PHP <7.panne
la source
Rétine , 101 octets
Essayez-le en ligne! Prend la liste séparée par des espaces
L
sur la première ligne et l'entierN
sur la deuxième ligne. Explication: La première étape convertit l'entrée en unaire. La deuxième étape change l'espace entre des entiers consécutifs en unX
. La troisième étape recherche des séries d'entiers consécutifs dont la longueur est inférieure àN
et change leurX
s en espaces. La quatrième étape change leX
s en-
(ce qui était 3 octets plus court que l'utilisation de-
s en premier lieu.) La cinquième étape supprime tous les nombres entiers encore laissés au milieu d'une course, ainsi queN
, tandis que la dernière étape se reconvertit en décimale.la source
Rubis, 68 octets
Renvoie une chaîne comme par exemple
3,5-8,10-12,14,16-22,24
.Essayez-le en ligne!
la source
J , 40 octets
Essayez-le en ligne!
Utilise
_
au lieu de-
.Explication
la source
Gelée,
393736 octetsEssayez-le en ligne
Prend le tableau via des arguments et l'entier via STDIN. Le lien TIO utilise le pied de page
ÇG
afin que la sortie soit séparée par des espaces.Comment? (Array:
a
, Entiern
)Je suppose que je suis tombé ... à plat sur celui-ci.
la source
JavaScript (ES6),
126119 octetsUne fonction anonyme. Prend l'entrée dans l'ordre
Array L, Integer N
et renvoie le résultat sous la forme d'une chaîne séparée par des virgules.Afficher l'extrait de code
la source
e=>c=>
.Dyalog APL v16.0,
82807876756562 octetsWow, c'est ... mauvais. Il existe probablement une solution beaucoup plus courte avec le pochoir.
Essayez-le en ligne!
Suggestions de golf bienvenues!
la source