var QUESTION_ID=62587,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/63075/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>
x
, die gleich sindx
?Pyth, 9 Bytes
Demonstration
Verwendet Vihan et. Ansatz mit Suffixen.
quelle
ShapeScript ,
5747 BytesIch habe ShapeScript für erstellt diesen Wettbewerb erstellt . Der Interpreter auf GitHub hat eine leicht geänderte Syntax.
Probieren Sie es online!
quelle
CJam,
15 bis14 BytesProbieren Sie diese Geige im CJam-Interpreter aus oder überprüfen Sie alle Testfälle auf einmal.
Wie es funktioniert
quelle
J, 11 char
Ausgaben
1
für Lyndon-Wörter und0
sonstiges.<\.
Nimmt Suffixe und/:
sagt uns dann , wie wir sie lexikographisch sortieren sollen.{
Nimmt den Eintrag am0
-ten Index und0=
prüft, ob er Null ist: Wenn dies der Fall ist, haben wir ein Lyndon-Wort, weil das größte Suffix die Position in einer Sortierung nicht ändern würde. Wenn es nicht Null ist, ist es kein Lyndon-Wort, da ein Suffix lexikografisch früher ist.quelle
TeaScript , 10 Bytes
Sehr Golf, sehr kurz. Probieren Sie es online aus
Erklärung && Ungolfed
quelle
00
, aber wie macht es das, ohne zu merken, dass es sich selbst gleicht (dh wanni==0
)?Haskell, 29
Prüft, ob
s
höchstens jedes seiner nicht leeren Suffixe wie Nimis Antwort ist .Der Ausdruck
scanr(:)[]
generiert die Liste der Suffixe durch Auflisten.Die
init
leere Zeichenkette wird dann am Ende entfernt. Abschließend wirdall(s<=)
geprüft, ob jedes Suffixx
erfüllt ists<=x
. Da das erste Suffixs
selbst ist,<=
wird a benötigt.quelle
Ruby, 37 Bytes
Testen:
quelle
Burlesque, 15 Bytes
Hauptsächlich 8 dieser 7 Bytes dienen dazu, zu überprüfen, ob sie nicht zusammenpassen. Ansonsten kann man einfach mitgehen
JiR<]==
.Erläuterung:
quelle
Pyth - 12 Bytes
Hoffe ein bisschen Golf zu spielen.
Versuchen Sie es online .
quelle
Javascript (ES6), 129 Bytes
quelle
Javascript,
9187 BytesIm Grunde verkette ich das Wort mit sich selbst und überprüfe, ob es noch da ist. Um zu überprüfen, ob es sich um die kleinstmögliche Zahl handelt, stelle ich einfach sicher, dass sie mit einer 0 beginnt und mit einer 1 endet.
Tests
quelle
Mathematica, 86 Bytes
Eingang
quelle