Lập trình Câu đố & Code Golf đã mở một chiếc xe tải taco ! Từ này được đưa ra và bây giờ người dùng từ khắp nơi trên mạng Stack Exchange đang đến để dùng thử các tacos ASCII ngon, xác thực của chúng tôi . Chúng tôi cần sự giúp đỡ của bạn để đảm bảo rằng mọi người đều nhận được đơn đặt hàng kịp thời. Không có nhiều chỗ trong các xe tải thực phẩm, vì vậy bạn sẽ cần mã của mình càng ngắn càng tốt.
Bây giờ cho một số đào tạo tại chỗ.
Công việc của bạn
Viết chương trình đầy đủ đọc một đơn đặt hàng từ STDIN hoặc một hàm nhận một đơn hàng chuỗi làm đầu vào. Tacos được in thành STDOUT, được thực hiện theo đơn đặt hàng.
Nhận đơn đặt hàng
Khách hàng sẽ cung cấp cho bạn đơn đặt hàng của họ thông qua STDIN hoặc đối số chức năng. Các đơn đặt hàng sẽ ở dạng một danh sách được phân tách bằng dấu phẩy của các lớp phủ mong muốn. Thứ tự mà các lớp phủ được đưa ra chỉ ra thứ tự xuất hiện trong taco, với thứ hạng đầu tiên được liệt kê ở phía dưới và cuối cùng ở trên cùng. Đây là những gì chúng tôi giữ trong kho:
- Đậu
- Cơm
- Rau
- Rau diếp
- Guacamole
- Kem chua
- điệu Salsa
Khách hàng có thể đặt hàng ít nhất là 1 topping nhưng không quá 5 toppings. Toppings không cần phải khác biệt.
Bạn có thể cho rằng khách hàng đã quen thuộc với menu trước khi đặt hàng và do đó tất cả các đơn đặt hàng sẽ chỉ chứa các thành phần mà chúng tôi dự trữ. Đó là, đầu vào sẽ luôn luôn hợp lệ.
Phục vụ bánh taco
Khách hàng yêu cầu tacos của họ được in thành STDOUT. Chúng ổn với một số khoảng trắng hàng đầu hoặc dấu trong thực phẩm của chúng.
Nghiên cứu thị trường cho thấy mọi người đều muốn ăn tacos như lời nói, và từ trong tất cả các mũ có hương vị hơn nhiều. Do đó, chúng tôi sẽ liệt kê các lớp phủ trong TẤT CẢ CAPS không có khoảng trắng.
Vì lợi ích của việc trình bày nghệ thuật, chúng ta không thể nhét đồ vào một cái bánh ngô và gọi nó là tốt, chúng ta phải nhẹ nhàng đặt lớp phủ bên trái sang phải, gói và lặp lại khi cần thiết. Mỗi topping được tối thiểu 2 dòng cho chính nó. Tất cả điều này sẽ trở nên rõ ràng hơn khi chúng ta kiểm tra đĩa mẫu.
Mẫu đĩa
Chúng ta hãy xem một số đơn đặt hàng mẫu.
Các đơn đặt hàng của khách hàng: Beans,Veggies,Rice,Lettuce,Sour Cream
Chúng tôi cung cấp:
SOUR
CREAMS
T LETTUC L
O ELETTU I
R RICERI T
T CERICE R
I VEGGIE O
L SVEGGI T
L BEANSB A
A EANS L
TORTIL
Trông khá ngon đúng không? Các mặt trên bao bọc sau 6 ký tự thành một dòng mới và được lặp lại để điền vào mỗi dòng 2 ký tự, cắt ngắn thành 12 ký tự. Thành phần đầu tiên có 6 ký tự trên dòng trên cùng nhưng chỉ có 4 ký tự trên dòng thứ hai. Điều này đảm bảo rằng nó phù hợp với nếp gấp của tortilla. Tương tự, thành phần cuối cùng luôn có 4 ký tự trên dòng trên cùng và 6 ký tự thứ hai.
Điều gì xảy ra nếu một khách hàng đặt hai thứ trên cùng một hàng? Tiếp tục gói thành phần đó cho tất cả các dòng liên tiếp của thành phần đó.
Các đơn đặt hàng của khách hàng: Lettuce,Lettuce,Lettuce,Salsa
Chúng tôi cung cấp:
T SALS L
O ASALSA I
R LETTUC T
T ELETTU R
I CELETT O
L UCELET T
L TUCELE A
A TTUC L
TORTIL
Các đơn đặt hàng của khách hàng: Guacamole
T L
O I
R T
T R
I O
L GUAC T
L AMOLEG A
A UACA L
TORTIL
Chỉ có một thành phần? Cho thêm 4 nhân vật có giá trị trên đầu trang.
Nhân viên của tháng
var QUESTION_ID=65888,OVERRIDE_USER=20469;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>
Nấu ăn vui vẻ!