Lưu ý: thách thức này liên quan đến việc tải xuống và chọn lọc thông qua các trang web HTML. Nếu ngôn ngữ của bạn không thể xử lý điều này, bạn có thể không muốn tham gia vào thử thách này.
Giới thiệu
Luôn có những cuộc thảo luận trong Trò chuyện Byte thứ mười chín về người dẫn dắt mạn phải. Vì vậy, hãy giúp mọi người ra ngoài và đếm tổng số sao cho mỗi người dùng trong cuộc trò chuyện.
Thử thách
Cho một số nguyên dương N
lớn hơn 0, hãy tính (các) nhà lãnh đạo của bảng N
sao của các tin nhắn được gắn dấu sao cuối cùng trong cuộc trò chuyện. Những tin nhắn có thể được xem ở đây . Gợi ý: mỗi trang có 50 tin nhắn được gắn dấu sao. Đầu ra sẽ là danh sách 5 người dùng hàng đầu theo số lượng tin nhắn được gắn dấu sao . Phần thưởng giảm -15% số byte của bạn sẽ được cấp nếu bạn có thể hiển thị tên người dùng của những người dùng đó, nhưng sẽ không bị phạt nếu bạn chỉ hiển thị số id người dùng. Xin lưu ý rằng có những lời tục tĩu trong một số tin nhắn được gắn dấu sao. Nếu bạn nhạy cảm với loại ngôn ngữ này, hãy cẩn thận xem trang.
Ví dụ (Hình ảnh là mạn phải hiện tại khi viết thử thách này):
- (ĐỎ) Đầu vào:
5
Đầu ra (Có thưởng):[Geobits Sp3000 PhiNotPi Seadrus]
- (BLUE) Đầu vào:
10
Đầu ra (Không có tiền thưởng):[51024 17335 24697 116494 129255]
- (XANH) Đầu vào:
14
Đầu ra (Không có tiền thưởng):[51024 116494 141697 17335 24697]
Thêm thứ:
Các mối quan hệ trong top 5 sẽ được sắp xếp theo số id người dùng thấp nhất đến cao nhất . Nếu có ít hơn năm người dùng, chỉ cần xuất bảng xếp hạng với các vị trí trống ở cuối. Đầu vào và đầu ra có thể ở bất kỳ định dạng nào. Đầu ra không cần phải viết hoa. Nếu đầu vào lớn hơn 50
, bạn vẫn phải đếm các tin nhắn ở trang 2, trang 3, v.v. Bạn có thể cho rằng đầu vào sẽ luôn ở dưới 2^31
và cũng sẽ không lớn đến mức 1) lớn hơn số lượng tin nhắn được gắn dấu sao rằng có và 2) sẽ không làm sập chương trình (bằng cách tạo các mảng lớn, hết bộ nhớ, v.v.).
Đây là mã golf , mã ngắn nhất tính bằng byte thắng!
Bảng xếp hạng
Dưới đây là Stack Snippet để tạo cả bảng xếp hạng thông thường và tổng quan về người chiến thắng theo ngôn ngữ.
Để đảm bảo rằng câu trả lời của bạn hiển thị, vui lòng bắt đầu câu trả lời của bạn bằng một tiêu đề, sử dụng mẫu Markdown sau:
## Language Name, N bytes
nơi N
là kích thước của trình của bạn. Nếu bạn cải thiện điểm số của mình, bạn có thể giữ điểm số cũ trong tiêu đề, bằng cách đánh bại chúng thông qua. Ví dụ:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Nếu bạn muốn bao gồm nhiều số trong tiêu đề của mình (ví dụ: vì điểm của bạn là tổng của hai tệp hoặc bạn muốn liệt kê riêng các hình phạt cờ của thông dịch viên), hãy đảm bảo rằng điểm thực tế là số cuối cùng trong tiêu đề:
## Perl, 43 + 2 (-p flag) = 45 bytes
Bạn cũng có thể đặt tên ngôn ngữ thành liên kết sau đó sẽ hiển thị trong đoạn trích bảng xếp hạng:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
var QUESTION_ID=62182,OVERRIDE_USER=36670;function answersUrl(e){return"http://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"http://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>