Prenez deux entrées, un vecteur / liste non vide contenant des chiffres 1
et2
et une chaîne (non, vous ne pouvez pas prendre à la 0/1
place). La chaîne sera l'une des suivantes (en minuscules, exactement comme écrit ci-dessous:
increasing
decreasing
ones
twos
all
none
Si la chaîne est ____, vous devez renvoyer les indices ___:
increasing
... où la liste passe de1
à2
(tout ce2
qui suit directement après a1
)decreasing
... où la liste passe de2
à1
(tout ce1
qui suit directement après a2
)ones
... de tous les chiffres qui sont1
twos
... de tous les chiffres qui sont2
all
... tous les chiffresnone
... aucun des chiffres.0
est bien si la liste est indexée 1. Un nombre négatif est correct si la liste est indexée 0. Vous pouvez également afficher une liste ou une chaîne vide.
Cas de test:
Ils sont indexés 1. Vous pouvez choisir si vous voulez 1 indexé ou 0 indexé. Les mêmes vecteurs sont utilisés pour différentes chaînes dans les cas de test.
--------------------------------
Vector:
1 1 2 2 2 1 2 2 1 1 2
String - Output
increasing - 3, 7, 11
decreasing - 6, 9
ones - 1, 2, 6, 9, 10
twos - 3, 4, 5, 7, 8, 11
all - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
none - 0 / []
------------------------------------
Vector:
1
String:
ones - 1
all - 1
decreasing / increasing / twos / none - 0 / []
Notation
Comme il s'agit de code-golf , la réponse avec le moins d'octets l'emporte.
Réponses:
JavaScript (Firefox 30-57),
7473 octetsLes compréhensions de tableau sont une manière ordonnée de combiner
map
etfilter
en une seule fois. Edit: 1 octet enregistré grâce à @ edc65.la source
Python 2 ,
136131119 11910897 octetslambda
fonction.enumerate()
au lieu derange(len())
.0
-indexing (comme dans la réponse de TFeld ) et en jouant"adinot".find(m[0])
au golford(m[0])/3-32
.Essayez-le en ligne!
la source
1
ou2
, vous pouvez changer(l[j]>1)*(l[~-j]<2)
à(l[j]>l[~-j])
pour 119 octets1
-indexé.enumerate()
Python 2 ,
117111110999792 octetsEssayez-le en ligne!
0
-indexéPassé à l'aide de l'indexation de Jonathan et joué
ord(m[0])/3-32
au golford(t[0])/3%7
la source
l[i]==2
au golfl[i]>1
.Haskell ,
1128381 octetsEssayez-le en ligne! Exemple d' utilisation:
"increasing"%[1,1,2,1,2]
. Les résultats sont indexés 1.En partie inspiré par la réponse Haskell de Lynn .
la source
MATL ,
32313029 octetsLa sortie est basée sur 1 ou vide.
Essayez-le en ligne!
Explication
Le code calcule les six sorties possibles pour l'entrée de tableau, puis sélectionne la sortie appropriée en fonction de l'entrée de chaîne.
Pour sélectionner la sortie, les points de code ASCII de tous les caractères de l'entrée de chaîne sont ajoutés. Le résultat modulo 9 donne
6
,1
,5
,2
,7
,0
respectivement'increasing'
,'decreasing'
,'ones'
,'twos'
,'all'
,'none'
. Étant donné que tous les nombres résultants sont distincts, cela peut être utilisé comme critère de sélection.Au lieu d'effectuer réellement une opération modulo 9 sur la somme, la liste des entrées possibles est étendue à 9 entrées (dont certaines sont factices), et donc l'indexation dans cette liste se fait automatiquement modulo 9.
la source
Python 2 , 92 octets
Essayez-le en ligne!
la source
Gelée , 27 octets
Essayez-le en ligne!
-3 merci à Jonathan Allan .
la source
0
était le lien le plus bas, mais apparemment c'est commeÇ
mais plus bizarre, merci! (aussi je viens d'apprendre un nouveau mot: p)Husk , 27 octets
Essayez-le en ligne!
-9 grâce à H.PWiz .
Je suis assez fier de cette réponse.
la source
ΘẊ>
etΘẊ<
et`fN
0
est le dernier élément.¨₆Żσa¨
plutôt c'est pourquoi je n'ai pas utilisé cette fonctionnalité, merci. Et maintenant je peux dire que ça lie Jelly .Java (OpenJDK 8) ,
266217213205172171155131 octetsEssayez-le en ligne!
la source
y
commechar
, vous pouvez les tests d'égalité de golf commey.equals("a")
ày=='a'
,y==97
ou mêmey<98
.19
est -c
valeur la plus élevée de l »,c==19
est égale àc>18
.s->a->{int i=0,l=0,c=s.charAt(0)-97;for(int e:a){if(++i>1&(c==8&e>l|c==3&e<l)|c==14&(l=e)<2|c>18&l>1|c<1)System.out.print(i+",");}}
Jq 1,5 , 131 octets
Basé sur l' approche de xcali car la correspondance des chaînes est plus courte que ma version de tableau.
Suppose que jq est appelé avec des
-Rs
options et que l'entrée apparaît sur deux lignes, par exempleÉtendu:
Essayez-le en ligne!
la source
Haskell , 91 octets
Essayez-le en ligne!
Laikoni a enregistré un octet.
la source
(i,y,x)<-zip3[1..]l$l!!0:l
.J, 73 octets
Serait curieux de voir comment cela peut être condensé de manière significative - je crois que cela peut (10 caractères juste pour toutes ces parens de l'ordre du jour!)
g
- verbe auxiliaire pour augmenter et diminuer, ce qui revient à comparer les valeurs de l'infixe\
de taille 2@.
Essayez-le en ligne!
la source
1=]
et2=]
ne fonctionne pas? De plus, que se passe-t-il sig
prend un nombre comme argument de gauche et une liste comme argument de droite et renvoie les indices2-/\
appliqués à la liste égalent l'argument de gauche. De cette façon, vous pourriez le passer_1
ou1
trouver décroissant et croissant au lieu d'utiliser un adverbe.Java 8,
233229216 octetsCette approche String a fini plus longtemps que ce à quoi je m'attendais. Mais même si je suis énormément dépassé par l'autre réponse Java 8 , j'ai décidé de la publier quand même.
Il peut certainement être joué au golf, même avec cette approche. Le "aucun" et "l'augmentation / la diminution" ont principalement provoqué une solution de contournement qui a coûté quelques octets ..
Le résultat est indexé 1.
Explication:
Essayez-le ici.
la source
Perl 5 , 71 + 2 (
-nl
) = 73 octetsEssayez-le en ligne!
La logique révisée est en fait la même que l'explication ci-dessous, mais les correspondances de modèle ont été raccourcies.
Précédemment:
Essayez-le en ligne!
N'affiche rien si les critères ne correspondent pas.
Expliqué:
la source