var QUESTION_ID=77608,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/77608/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
Réponses:
Python 3,
383433 octetsCela attend une liste de chiffres ou de chaînes singleton comme argument. Testez-le sur Ideone .
Merci à @xsot d'avoir joué au golf sur 4 octets!
Merci à @immibis d'avoir joué au golf sur 1 octet!
la source
lambda s:s==sorted(s,key=`s`.find)
s.find
?s
doit être une liste de chaînes singleton (ou je devrais lancers
pour lister pour la comparaison), etlist.find
n'est pas défini ...s.index
alors? Semble fonctionner pour moi.JavaScript (ES6), 27 octets
Utilise l'anticipation négative pour rechercher deux chiffres non contigus. S'il existe au moins deux de ces chiffres, ils peuvent être choisis de sorte que le premier chiffre précède un autre chiffre.
la source
05AB1E , 4 octets
Code:
Explication:
Utilise CP-1252 encodage .
Essayez-le en ligne!
la source
Gelée , 5 octets
Essayez-le en ligne!
Comment ça marche
la source
Pyth,
65 octets1 octets grâce à FryAmTheEggman
Inspiré par la solution Python ici .
Suite de tests
Explication:
la source
SIxLQ
semble fonctionner.Q
ne semble pas être analysée correctement, elle échange l'ordre des arguments ou quelque chose pour que vous obteniez tous les0
s et cela donne toujours la vérité. Voici une suite de tests.R,
66484643 43octetsIl s'agit d'une fonction qui accepte l'entrée en tant que vecteur de chiffres et renvoie un booléen. Pour l'appeler, affectez-le à une variable.
Pas le plus court mais j'ai pensé que c'était une approche amusante. Nous exécutons la longueur encoder l'entrée et extraire les valeurs. Si la liste de valeurs contient des doublons
FALSE
, retournez , sinon retournezTRUE
.Vérifiez tous les cas de test en ligne
Économisé 20 octets grâce à MickyT, 3 grâce à Albert Masclans et 5 grâce à mnel!
la source
MATL , 8 octets
La sortie est un tableau contenant uniquement des valeurs pour true, ou un tableau contenant au moins un zéro pour falsey.
Essayez-le en ligne!
Explication
Considérez l'entrée
22331
, qui satisfait la condition. Tester si chaque caractère est égal donne le tableau 2DLe résultat final doit être véridique si les lignes de ce tableau (considérées comme atomiques) sont en ordre décroissant (lexicographique) . Pour comparaison, l'entrée
22321
donne le tableaudans lequel les lignes ne sont pas triées.
la source
Rétine , 17 octets
Essayez-le en ligne! (Légèrement modifié pour exécuter tous les cas de test en même temps.)
La première expression régulière correspond aux chiffres qui sont séparés par d'autres chiffres, nous obtenons donc un
0
pour les entrées valides et n'importe où entre1
et9
pour les entrées non valides (en raison de la cupidité du.+
, nous ne pouvons pas obtenir plus den-1
correspondances pourn
différents chiffres).Pour inverser la véracité du résultat, nous comptons le nombre de
0
s, qui est1
pour les entrées valides et0
pour celles invalides.la source
A`(.)(?!\1).+\1
pour 15 octets. Fonctionne également pour plusieurs entrées. La vérité est l'entrée, la fausse n'est rien. On ne se contente pas de jouer au golf avec Martin dans sa propre langue. :)Java,
161156 octetsParce que Java ...
Voler sans
vergogne enempruntant l'expression rationnelle à cette réponse parce que j'ai commencé à essayer de le faire avec des tableaux et des manipulations mathématiques, mais cela est devenu horriblement complexe, et l'expression régulière est un outil aussi bon que n'importe lequel pour ce problème.Non golfé:
Dispose comme une personne Java sensée:
la source
like a sensible Java person
Ce serait, ne jamais utiliser Java.s->s.match("(.)(?!\\1).*\\1")
Pyth, 7 octets
Suite de tests .
la source
Rubis, 23 octets
Fonction anonyme. Accepte une chaîne. Regex strat.
Ventilation des regex
!~
signifie s'il n'y a aucune correspondance de l'expression rationnelle dans la chaîne, retournetrue
et retourne autrementfalse
.la source
Mathematica, 26 octets
la source
MATL,
1311 octetsMerci à Luis Mendo d' avoir sauvé deux octets!
Essayez-le en ligne!
Explication
la source
j
. En outre, je pense que vous pouvez vous déplacervA
dans la boucle et supprimer]
Y&
intérieur mais cela n'a pas fonctionné carfd2<
peut être vide. Se déplacer à l'vA
intérieur fonctionne très bien! De plus, je souhaite vraiment que nous ayons une écurieunique
qui ne prenne pas des tonnes d'octets.u
stable par défaut (vous pouvez toujours inclureS
ensuite, deux octets). Qu'est-ce que tu penses?Haskell, 44 octets
Exemple d'utilisation:
((==)<*>nub).map head.group $ "44999911"
->True
.Une version sans point:
la source
J, 8 octets
Testez-le avec J.js .
Comment ça marche
la source
:]
:i
:-1
Python,
5655 octetsla source
int not subscriptable
)~
(qui est littéralement équivalent à1-
):a=lambda s:~(s[0]in s.lstrip(s[0]))&a(s[1:])if s else 1
C #, 119 octets
Non golfé
la source
Julia, 35 octets
Pour une raison quelconque,
sort
ne prend pas de chaîne, maisissorted
...la source
issorted
marche, maissort
ça ne marche pas.sorted
transforme d'abord son argument itérable en une liste mutable - c'est pourquoisorted(string)
renvoie une liste de chaînesFacteur, 22 octets
Fait ce qu'il dit sur l'étain. En tant que fonction anonymouse, vous devriez le
call
faire ou en faire un: word ;
.la source
Lua,
1079485 octets13 octets enregistrés grâce à @LeakyNun
Au moins, il bat Java: D. Lua craint de manipuler les cordes, mais je pense que c'est assez bon :).
Il prend son entrée en tant qu'argument de ligne de commande
et sortSort maintenant en utilisant son code de sortie. Quittez le code 0 pour la vérité et 1 pour la fausse1
pour les cas véridiques et les casfalse
fausses.Non golfé
Attention, il y a deux variables magiques appelées
...
, la première contient l'argument du programme, la seconde est locale à la fonction anonyme et contient ses paramètresla source
os.exit()
pari=#0
...JavaScript ES6,
7169 octetsOu équivalent:
Golf en cours.
Vérifier les cas de test
la source
C # 111 octets
ancienne stratégie 131 octets
premier golf, je pense que je l'ai fait ok
la source
C,
747371 octetsRasé d'
unoctet grâce à @xsot!la source
a[99]
J'adore l'autovivification de Perl! Oh, attendez ...a[99],c,m;main(d){for(;~c;m|=a[d=c]+=c!=d)c=getchar();putchar(48+1/m);}
!--m
par1/m
. À proposa[d=c]+=c!=d
, je l'ai essayé avec gcc et cela n'a pas fonctionné sur mon ordinateur en raison de l'ordre d'évaluation. Nous devons trouver un compilateur qui jouera.a[99],c,m;main(d){for(;~c;m|=c^d&&a[d=c]++)c=getchar();putchar(48+!m);}
Haskell, 37 octets
Utilise la même approche que la réponse MATL de Luis Mendo : crée un vecteur pour chaque entrée qui les indexe égal et vérifie que le résultat est trié par ordre décroissant.
(<$>l).(==)<$>l
est une version plus courte de[map(==a)l|a<-l]
. La fonction(<$>l).(==)
qui prenda
àmap(==a)l
est mappé surl
.scanl1 min
prend les plus petits éléments cumulatifs del
, ce qui n'est égal à l'original que s'ill
est trié en sens inverse.(==)=<<
vérifie si la liste est bien invariante sous cette opération.Une stratégie récursive différente a donné 40 octets:
Cela vérifie chaque suffixe pour voir si son premier élément n'apparaît pas dans le reste, excusant les cas où les deux premiers éléments sont égaux dans le cadre d'un bloc contigu.
la source
Raquette, 53 octets
La version stupide et simple.
Non golfé:
Raquette, 86 octets
Voici la version mettant en œuvre le commentaire de @ xnor sur des moyens plus efficaces de le faire.
Non golfé:
D'accord, cela peut simplement déplacer le poids du calcul de la
sort
fonction versregexp-replace
, mais c'était une solution intéressante. En gros, il supprime pistes de caractères en double première ( voir ici ), puis il vérifie si la longueur-1 restantes pistes sont à la mode tri.la source
Perl 5, 20 octets
19, plus 1 pour
-pe
au lieu de-e
.la source
Wolfram Language (Mathematica) , 18 octets
Essayez-le en ligne!
Gather
rassemble une liste en sous-listes d'éléments identiques etSplit
divise une liste en sous-listes d'éléments identiques consécutifs. Ils donnent le même résultat si et seulement si chaque valeur apparaît dans un seul bloc contigu.la source
Convexe, 17 octets
Essayez-le en ligne!
la source
Japt , 9 octets
Essayez-le
Explication
la source
APL (Dyalog) , 17 octets
Essayez-le en ligne!
la source