Jeden Tag setzen Sie ein neues Wort mit beweglichen Buchstaben auf ein Festzelt und kaufen nur die Buchstaben, die Sie zum Schreiben benötigen. Sie verwenden Briefe, die Sie für frühere Wörter gekauft haben, immer wieder, wenn dies möglich ist. Geben Sie unter Berücksichtigung der Wörter, die Sie jeden Tag in der richtigen Reihenfolge schreiben möchten, die Buchstaben aus, die Sie jeden Tag kaufen.
Beispiel
Input: ['ONE', 'TWO', 'THREE', 'SEVENTEEN']
Output: ['ENO', 'TW', 'EHR', 'EENSV']
Tag 1: Sie ohne Buchstaben beginnen, so zu schreiben ONE
, können Sie alle seine Briefe kaufen E
, N
, O
.
Tag 2: Am nächsten Tag möchten Sie aufstellen TWO
(abnehmen ONE
). Sie haben bereits eine O
von ONE
, also kaufen Sie eine zusätzliche TW
.
Tag 3: Zu diesem Zeitpunkt haben Sie ENOWT
. Zum Schreiben
THREE
brauchst du EHR
. Beachten Sie, dass Sie E
zusätzlich zu dem, den Sie haben , einen zweiten kaufen müssen.
Tag 4: Um zu schreiben SEVENTEEN
, brauchst du 4
E
, von denen du bereits zwei hast (nicht drei!), Also kaufst du zwei mehr. Sie haben auch die T
und einer der N
‚s, so dass Sie die restlichen Buchstaben kaufen:
EENSV
.
In diesem Beispiel werden Buchstaben alphabetisch sortiert ausgegeben, Sie können sie jedoch in beliebiger Reihenfolge ausgeben.
Eingabe: Eine nicht leere Liste nicht leerer Buchstabenfolgen A-Z
. Sie können auch Kleinbuchstaben verwenden, wenn Sie dies vorziehen. Zeichenlisten eignen sich gut für Zeichenfolgen.
Ausgabe: Geben Sie die zusätzlichen Buchstaben aus, die Sie täglich kaufen müssen, oder drucken Sie sie aus. Die Buchstaben eines Tages können in beliebiger Reihenfolge ausgegeben werden, die Tage müssen jedoch in der richtigen Reihenfolge angegeben werden.
Die Buchstaben von jedem Tag sollten von den anderen Tagen getrennt sein, damit Sie erkennen können, wo ein Tag endet. Ein nachgestelltes und / oder führendes Trennzeichen ist in Ordnung, sowohl innerhalb eines Tages als auch zwischen Tagen. Beachten Sie, dass für einen Tag möglicherweise keine Buchstaben gekauft wurden, was sich in der Ausgabe widerspiegeln sollte (ein Leerzeichen oder eine leere Zeile ist auch für den letzten Tag in Ordnung).
Testfälle
['ONE', 'TWO', 'THREE', 'SEVENTEEN']
['ENO', 'TW', 'EHR', 'EENSV']
['ONE', 'TWO', 'ONE', 'THREE']
['ENO', 'TW', '', 'EHR']
['ABC', 'AABC', 'ABBC', 'ABCC', 'AABBCC']
['ABC', 'A', 'B', 'C', '']
['SHORT', 'LOONG', 'LOOOONG', 'LOOOOOOONG', 'SHORT', 'LOOONG']
['HORST', 'GLNO', 'OO', 'OOO', '', '']
Hier sind alle Ein- und Ausgänge als separate Listen aufgeführt:
[['ONE', 'TWO', 'THREE', 'SEVENTEEN'], ['ONE', 'TWO', 'ONE', 'THREE'], ['ABC', 'AABC', 'ABBC', 'ABCC', 'AABBCC'], ['SHORT', 'LOONG', 'LOOOONG', 'LOOOOOOONG', 'SHORT', 'LOOONG']]
[['ENO', 'TW', 'EHR', 'EENSV'], ['ENO', 'TW', '', 'EHR'], ['ABC', 'A', 'B', 'C', ''], ['HORST', 'GLNO', 'OO', 'OOO', '', '']]
Und als durch Leerzeichen getrennte Zeichenfolgen (die nachgestellten Leerzeichen in den Ausgaben sind wichtig):
ONE TWO THREE SEVENTEEN
ONE TWO ONE THREE
ABC AABC ABBC ABCC AABBCC
SHORT LOONG LOOOONG LOOOOOOONG SHORT LOOONG
ENO TW EHR EENSV
ENO TW EHR
ABC A B C
HORST GLNO OO OOO
Bestenlisten
var QUESTION_ID=183544,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/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>