Đưa ra câu trả lời trên của bạn


15

Viết chương trình xuất nội dung của <code>...</code>khối HTML đầu tiên của câu trả lời cho câu hỏi này ngay phía trên bạn khi các câu trả lời được sắp xếp theo phiếu bầu. Đầu ra Top!nếu bạn là câu trả lời hàng đầu.

Bỏ qua các câu trả lời có phiếu bầu tiêu cực hoặc không có <code>...</code>thẻ. Nguồn chương trình của bạn phải xuất hiện trong <code>...</code>khối đầu tiên trong bài viết của bạn. Các khối này được tạo tự động khi bạn use backtickshoặc

indent things with 4 spaces.

Đây là môn đánh gôn, câu trả lời có ít nhân vật nhất sẽ thắng.

Quy tắc bổ sung (Cập nhật)

  • Trả lời bằng bất kỳ ngôn ngữ lập trình nào bạn muốn nhưng nếu bạn trả lời nhiều lần, hãy sử dụng các ngôn ngữ khác nhau.
  • Bạn có thể không cứng mã đầu ra của bạn. Khả năng chạy chính xác của chương trình của bạn không nên phụ thuộc vào số phiếu bầu hoặc vào câu trả lời ở trên. Nếu phân phối phiếu thay đổi mạnh mẽ, chương trình của bạn vẫn sẽ xuất chính xác mã của câu trả lời ở trên.
  • Bạn có thể khó mã hóa chương trình của mình để tự tìm kiếm trên trang này (để tìm mức cao nhất tiếp theo) thông qua một số thuộc tính duy nhất của câu trả lời của bạn, chẳng hạn như tên người dùng của bạn (nếu bạn chỉ có một câu trả lời) hoặc liên kết trực tiếp của câu trả lời.
  • Nếu hai câu trả lời có số phiếu bằng nhau, bạn vẫn nên sử dụng câu trả lời ngay trên câu trả lời của mình (mà tôi tin rằng đây sẽ là câu trả lời mới nhất).
  • Bạn có thể có nhiều <code>...</code>khối trong câu trả lời của mình nhưng khối đầu tiên phải chứa nguồn chương trình của bạn.

1
Tôi có phải chiếm nhiều trang không?
Οurous

1
Có, bạn nên chiếm nhiều trang
Sở thích của Calvin

4
Lưu ý rằng inline code spanschỉ là <code></code>, nhưng khối mã thích hợp là <pre><code>stuff</code></pre>.
Doorknob

3
@ Calvin'sHob sở thích Tôi nghĩ rằng thứ tự của các câu trả lời gắn liền (bằng phiếu) là ngẫu nhiên. Ít nhất là về SO, tôi không biết về điều này.
Martin Ender

4
Tôi sẽ lập luận rằng việc quan tâm đến nhiều trang là không cần thiết - nếu bạn không ở trang đầu tiên, dù sao bạn cũng
KHÔNG

Câu trả lời:


5

Javascript + jQuery (92 86 64 ký tự)

Để kiểm tra, mở Công cụ Dev trên này trang (thường là F12), và chạy mã của tôi!

Javscript này cần được chạy bằng bàn điều khiển từ trang này (và chỉ trang này).

alert($("code",$("#answer-34767").prev().prev()).html()||"Top!")

Rất ngắn, nó thậm chí không cần một thanh cuộn!

Về cơ bản, nó tìm thấy câu trả lời của tôi bằng ID, và sau đó có hai nút phía trước (bỏ qua liên kết neo). Nếu điều đó không tồn tại, tôi phải ở trên đỉnh. Sau đó, nó đào xuống codephần tử đầu tiên và lấy nó .innerHTML.

Điều tuyệt vời là SE sử dụng jQuery theo mặc định, vì vậy tôi có được lợi thế đó mà không cần cố gắng.


2
Cá nhân tôi không thích câu trả lời của bạn vì nó hơi giống như gian lận ... Dù sao, nó cũng có thể ngắn như vậy alert($("code",$("#answer-34767").prev().prev()).html()||"Top!").
core1024

@ core1024: Cảm ơn sự ngẫu hứng! Tôi đã không nghĩ làm điều đó một tuyên bố. Tôi đồng ý rằng tôi có một lợi thế rất lớn. Có lẽ tôi phải đếm mã của Firefox cho> 78MB? Các quy tắc nói "Trả lời bằng bất kỳ ngôn ngữ lập trình nào bạn muốn".
Robbie Wxyz

Bạn không cần phải đếm mã của Firefox :) Ưu điểm của bạn là trong môi trường hiện tại chứ không phải trong trình thông dịch. Như thể mọi người đều có nguồn của trang đã được tải trong một "đối tượng" / "biến". +1 cho khai thác;)
core1024

4
Điều này sẽ cảnh báo "trên cùng" nếu nó ở đầu trang thứ hai, đây có phải là hành vi đúng không?
William Barbosa

@WilliamBarbosa: Tôi với "lrn" trên đó. (xem bình luận của anh ấy về câu hỏi của OP).
Robbie Wxyz

6

PHP 666 611 593 588 580 Ký tự

Chỉnh sửa: Được sử dụng url thậm chí nhỏ hơn so với trước đây từ tinyurl.

Chỉnh sửa: Sau khi nhận xét về câu trả lời khác, tôi đã sử dụng int chứ không phải boolean. Cũng cần phải sửa một lỗi đã trở nên rõ ràng nhưng đã được sửa ngay bây giờ.

Đây là mã của tôi

<?
$a=34727;$b=new DOMDocument();$b->loadHTMLFile("http://turl.no/t2u");$c=$b->saveHTML();$d=$e=1;$f='data-answerid="';$g=strpos($c,$f);$h=substr($c,0,$g);$c=substr($c,($g+15));while($d==1){$g=strpos($c,'"');$i=substr($c,0,$g);if($i==$a){$j=$h;$k=$e;}$g=strpos($c,'vote-count-post ">');$c=substr($c,($g+18));$g=strpos($c,'<');$l=substr($c,0,$g);$g=strpos($c,'data-answerid="');if($g){++$e;++$e;$h=substr($c,0,$g);$c=substr($c,($g+15));}else{$d=2;}}if($k==1){echo 'Top!';}else{$g=strpos($j,'><code>');$m=strpos($j,'</code></pre>');$n=$m-$g-7;$o=substr($j,($g+7),$n);echo nl2br($o);}

Tôi chắc chắn rằng điều này có thể được cải thiện bằng cách sử dụng DOMXPath và các nút. Tuy nhiên tôi khá hài lòng với nó. Tôi không thể quyết định phải làm gì trong trường hợp của tôi là câu trả lời duy nhất nhưng với những điểm đã bị bỏ qua. Tuy nhiên, một câu trả lời khác đã được đăng lên để không còn là vấn đề nữa.

Tôi cũng đã sử dụng tinyurl để rút ngắn url, tiết kiệm rất nhiều ký tự.

Tôi hy vọng bạn thích nó,

Paul.

PS Điều này sẽ không chạy trong codepad vì vậy không thể hiển thị một câu đố.

Chỉnh sửa: đã lưu thêm 5 thẻ với các thẻ php được thay đổi

Bạn có thể thấy nó hoạt động ở đây trên một tên miền tôi hiện không sử dụng (vì vậy tôi không chỉ đang thử một liên kết lén lút). Đây không phải là một liên kết vĩnh viễn mặc dù hiện đang có sẵn.


Bạn có thể rút ngắn nó thậm chí nhiều hơn bằng cách sử dụng urlshortener thậm chí còn ngắn hơn =), ví dụ ➡.ws / .v
flawr

Tôi đã thử nó với liên kết tinyarrows.com nhưng sự chậm trễ trong việc kết nối với máy chủ. Họ thực sự là các url nhỏ.
Paul Drewett

1
Trên trang web này, có thể chấp nhận sử dụng thẻ mở rút ngắn (tôi tin là <?thay vì <?php) và bỏ qua thẻ đóng. Điều đó sẽ để lại cho bạn một vài ký tự.
Justin

1
turl.no tạo ra một số liên kết khá ngắn và vì đó là công cụ rút gọn liên kết của Na Uy, nên rất ít người chú ý đến nó trên phạm vi quốc tế. Đây là một liên kết dành cho bạn: turl.no/t2u trỏ đến cùng một trang với liên kết tinyurl.com của bạn và lưu 8 ký tự.
bilde2910

@ bilde2910 Thankyou, nó đã hoạt động và nó thực sự là một url rất nhỏ khác. Nhiều đánh giá cao và Turl.ca là thú vị. Anh ấy yêu tên miền .ca của mình không anh ấy :-)
Paul Drewett

4

Phi tiêu 412 403

import"dart:io";import"dart:convert";main(){new HttpClient().get("pi.vu",0,"BYga").then((v)=>v.close()).then((r)=>r.transform(UTF8.decoder).join()).then((s,[i,c="Top!"])=>new RegExp(r'<div id="answer-(\d+)[^]*?vote-count-post ">(\d+)[^]*?<table class="fw"').allMatches(s).forEach((m)=>m[1]=="34735"?print(c):m[2][0]!='-'&&(i=(s=m[0]).indexOf("<code>"))>0?c=s.substring(i+6,s.indexOf("</code>",i)):0));}

Ungolfed (tốt, với dòng mới và khoảng trắng hàng đầu)

import"dart:io";
import"dart:convert";
main(){
  new HttpClient().get("pi.vu",0,"BYga")
  .then((v)=>v.close())
  .then((r)=>r.transform(UTF8.decoder).join())
  .then((s,[i,c="Top!"])=>
      new RegExp(r'<div id="answer-(\d+)[^]*?vote-count-post ">(\d+)[^]*?<table class="fw"')
      .allMatches(s)
      .forEach((m)=>
          m[1]=="34735"?print(c)
                       :m[2][0]!='-'&&(i=(s=m[0]).indexOf("<code>"))>0
                           ?c=s.substring(i+6,s.indexOf("</code>",i)):0
  ));
}

4

Delphi (688 873 859 848 840)

Tôi vẫn sẽ cố gắng cạo sạch một số nhân vật nhưng nó sẽ thực hiện công việc :)

Chỉnh sửa: thay vì rút ngắn lại, tôi làm cho nó dài hơn: P
Tôi quên thêm vào việc bỏ qua các câu trả lời khi nó có phiếu bầu tiêu cực hoặc không có khối mã.

Tôi chỉ cập nhật phiên bản không chơi gôn trong khi chỉnh sửa.
Cảm ơn @manatwork cho các chỉnh sửa được đề xuất đã loại bỏ 8 ký tự.

Phiên bản chơi gôn:

uses IdHTTP,Classes,MSHTML;const u='http://codegolf.stackexchange.com/questions/34705/output-the-answer-above-yours/34718#34718';var g:TIdHTTP;m:TMemoryStream;l:TStringList;p,t,r,o:OleVariant;s,i,j:int32;c:boolean;begin L:=TStringList.Create;g:=TIdHTTP.Create(nil);m:=TMemoryStream.Create;g.Get(u,m);m.Position:=0;L.LoadFromStream(m);p:=coHTMLDocument.Create as IHTMLDocument2;p.write(l.Text);for I:=0to p.body.all.length-1do begin c:=0>1;t:=p.body.all.item(i);if(t.classname='answer')and(t.id='answer-34718')then if s=0 then writeln('Top!') else for j:=0to o.all.length-1do begin t:=o.all.item(j);if t.tagname='CODE'then writeln(t.innertext);end else if t.classname='answer'then begin for j:=0to t.all.length-1do begin r:=t.all.item(j);if r.tagname='CODE'then c:=1>0 else if c and(r.class='vote-count-post')and(r.innertext[1]<>'-')then begin o:=t;s:=1;end;end;end;end;end.

Phiên bản bị đánh cắp:

uses
  IdHTTP,Classes,MSHTML;
const
  u='http://codegolf.stackexchange.com/questions/34705/output-the-answer-above-yours/34718';
  a='answer';b='CODE';
var
  g:TIdHTTP;
  m:TMemoryStream;
  l:TStrings;
  p,t,r,o,z:OleVariant;
  s,i,j:int32;
  c:byte;
begin
  L:=TStringList.Create;
  g:=TIdHTTP.Create(nil);
  m:=TMemoryStream.Create;
  g.Get(u,m);
  m.Position:=0;
  L.LoadFromStream(m);
  p:=coHTMLDocument.Create as IHTMLDocument2;
  p.write(l.Text);
  z:=p.body.all;
  for I:=0to z.length-1do
  begin
    c:=0;
    t:=z.item(i);
    if(t.classname=a)and(t.id='answer-34718')then
      if s=0 then
        write('Top!')
      else
        for j:=0to o.all.length-1do
        begin
          t:=o.all.item(j);
          if t.tagname=b then
            write(t.innertext)
        end
    else if t.classname=a then
      for j:=0to t.all.length-1do
      begin
        r:=t.all.item(j);
        if r.tagname=b then
          c:=1
        else if(c=1)and(r.class='vote-count-post')and(r.innertext[1]<>'-')then
        begin
          o:=t;
          s:=1;
        end;
      end;
  end;
end.

http://codegolf.stackexchange.com/questions/34705/output-the-answer-above-yours/34718#34718có thể được thay đổi thành http://codegolf.stackexchange.com/q/34718, điều này sẽ tiết kiệm khá nhiều ký tự.
Doorknob

Cảm ơn, thật đáng buồn, tôi cũng đã phải thêm một số vì tôi đã quên phần mà bạn phải bỏ qua câu trả lời với số phiếu bầu phủ định hoặc không có khối mã: / .. không hoạt động :( Tôi nhận được 301 di chuyển vĩnh viễn
Teun Pronk

Như đã đề xuất trước đó , bạn có thể khai báo l TStringsthay thế. (Nhưng hãy giữ ngay lập tức với TStringList.)
manatwork 18/07 '

Tôi sẽ cố gắng làm c bytethay vì boolean.
manatwork

3

Con trăn - 280

import os, sys, cgi
os.system('wget http://codegolf.stackexchange.com/questions/34705/output-the-answer-above-yours.html -q -O a')
b=[ x[:-2] for x in open('a').read().split('code>') if x[-1]=='/']
for i, m in enumerate(b):
    if m == cgi.escape(open(sys.argv[0]).read()):
        print b[i-1]

Đây là codegolf đầu tiên của tôi, vì vậy tôi hy vọng đây là golf-y đủ!

Chỉnh sửa: Cảm ơn những lời khuyên! Bây giờ nó trông hơi golf hơn.


Không có vẻ xấu cho lần thử đầu tiên! Mặc dù bạn có thể sử dụng một shortener URL cho liên kết và thoát khỏi một vài khoảng trống trong đó ( for i,m, m==open, vv).
Christoph Böhmwalder

@HackerCow Tôi nghĩ rằng các công cụ rút ngắn URL thường cau mày, nhưng http://codegolf.stackexchange.com/q/34705/14509chắc chắn sẽ hoạt động.
undergroundmonorail

@KidElephant Tôi đã xóa một loạt khoảng trắng khỏi mã của bạn. Tôi đã không kiểm tra nó hoặc bất cứ điều gì nhưng trừ khi tôi làm hỏng nó sẽ (theo logic) cùng một chương trình. Lưu ý rằng tôi đã xóa shebang, những thứ không cần thiết ở đây. ix.io/dsz Lấy ra khoảng trắng có thể tiết kiệm khá một vài byte :)
undergroundmonorail

Ngoài ra, đối với các thử thách golf mã, bạn phải bao gồm số byte. Tôi sẽ chỉnh sửa một cái cho bạn ở đây nhưng câu trả lời của bạn có thể sẽ thay đổi nếu bạn sử dụng bất kỳ đề xuất nào để tôi không bận tâm. Bạn có thể tìm thấy số byte bằng cách chạy wc -c $filename. Nếu trình soạn thảo của bạn nối thêm một dòng mới vào các tệp (có thể là như vậy), bạn có thể trừ một từ đó để có được điểm số cuối cùng của mình.
undergroundmonorail

2

Toán học - 159

Lần đầu tiên thực hiện phân tích cú pháp trong Mathematica

FirstCase[
 Cases[Import["http://bit.do/JGta1","XMLObject"],
 {__,a_,_,_,_,XMLElement[_, {_, "id""answer-34780",__},_],__}a,∞], 
 XMLElement["code",_,{c_}]c,"Top!",∞]

2

Ruby 283 + 17 = 300

Điều này thành công bất kể có bao nhiêu phiếu mà câu trả lời này nhận được và không có vấn đề nếu có trang thứ hai (hoặc thứ mười lăm) câu trả lời hay không. Nó sử dụng API dữ liệu.

d=34849
JSON.parse(Net::HTTP.get(URI("http://api.stackexchange.com/2.2/questions/34705/answers?site=codegolf&filter=8G3Ng9T*")))['items'].map{|a|abort$1.gsub(/&.+?;/){|g|g[?a]??&:g[?g]??>:?<}if !d&&a['score']>=0&&/<code>(.*?)<\/code>/m=~a['body']
d=p if a['answer_id']==d}
$><<'Top!'

phải được chạy với ruby -rnet/http -rjson(do đó +17)

vô dụng:

d = 34849 # this answer id
i = JSON.parse(Net::HTTP.get(URI("http://api.stackexchange.com/2.2/questions/34705/answers?site=codegolf&filter=8G3Ng9T*")))['items'] # stackexchange api answers for this question
i.map{ |a|
  # if we've already hit this answer, the score's above 0 and there's code...
  if !d && a['score']>=0 && /<code>(.*?)<\/code>/m=~a['body'] then
    # abort with html-unescaped code
    abort $1.gsub(/&.+?;/){ |g|
      # this turns &amp;, &gt; and &lt; into &, > and <, respectively
      g[?a] ? ?& : g[?g] ? ?> : ?<       
    }
  end
  # if we are at our answer, set d = nil
  if a['answer_id']==d then 
    d = p 
  end
}
# no abort. puts 'Top!'
$><<'Top!'

Thay đổi

300 parens bị loại bỏ trong biểu tượng regex

302 cam kết ban đầu


Bạn có thể lưu một số byte bằng cách làm cho bộ lọc của bạn không an toàn
pppery

@ppperry hãy giải thích?
Không phải Charles

Sử dụng các bộ lọc không an toàn có nghĩa là bạn muốn phải xóa HTML thủ công. Xem tài liệu bộ lọc
pppery

1

PHP 135

<?
preg_match_all('@(\d+?)"></a.*de>(.*)</c@Us',join('
',file('http://pi.vu/BYga')),$m);echo$m[2][array_search(34786,$m[1])-1]?:'Top!';

Chỉnh sửa: Công cụ rút ngắn URL của lrn tạo ra URL ngắn nhất :)

RegEx khớp với neo trước mỗi câu trả lời (cùng với ID câu trả lời) và nội dung bên trong <code>thẻ đầu tiên . Các Ucờ kích hoạt Uchế độ ngreedy và slàm cờ .phù hợp với dòng mới (rất ít). Tôi không lo lắng nếu điều này phù hợp với một cái gì đó khác khi các câu trả lời được thoát, vì vậy không ai có thể chèn <nghĩa đen vào nguồn của trang.

Sau khi tôi nhận được tất cả các câu trả lời $m[2]và ID của họ $m[1], tôi chỉ sử dụng echođể in câu trả lời ở trên $m[2][array_search(34786,$m[1])-1], hoặc là "Trên cùng", nếu câu trả lời của tôi cuối cùng được đưa ra :)

Tôi thích thực tế là trong PHP, toán tử ternary có thể được sử dụng như một toán tử ngắn mạch ?:


Thật là tuyệt vời. Tôi vừa thử nó nhưng nó đang hiển thị mã từ cái bên dưới. Tôi chắc chắn đây sẽ là một sửa chữa nhanh chóng nhưng nghĩ rằng tôi sẽ đề cập đến nó. Mặc dù vậy, công việc tuyệt vời, 135 trong PHP, tôi vẫn không thể tin được ...
Paul Drewett

1
@PaulDrewett Vui lòng xem thứ tự khi bạn mở trang này trong trình duyệt riêng tư. Nó khác với thứ tự khi bạn đăng nhập.
core1024

Ồ, đó là bất ngờ. Tôi tự hỏi tại sao? Xin lỗi để chỉ ra một lỗi trong lỗi. Lỗi của tôi. Tôi đã upvote bạn mặc dù như là một câu trả lời hữu ích. Tôi vẫn nghĩ nó thật tuyệt vời ...
Paul Drewett 21/07/14

1

Delphi, 461 byte , 553 byte

Bây giờ xử lý nhiều trang quá!

Chơi gôn

uses IdHTTP,RegularExpressions;var T,S,O:String;K,V,C:Int32;begin repeat Inc(C);Str(C,S);S:=TIdHTTP.Create.Get('http://codegolf.stackexchange.com/questions/34705/output-the-answer-above-yours?page='+S);T:=T+S;until Pos('<span class="page-numbers next',S)=0;O:='Top!';for T in TRegEx.Split(T,'<a name="') do begin S:=T;Val(Copy(S,1,Pos('"',S)-1),K,C);if C=1then Continue;Delete(S,1,Pos('post ">',S)+6);Val(Copy(S,1,Pos('<',S)-1),V,C);C:=Pos('<code>',S);if(C=0)or(V<0)then Continue;if K=34844then Break;O:=Copy(S,C+6,Pos('</code>',S)-C-6);end;Write(O)end.

(hơi) Ungolfed:

uses
  IdHTTP,RegularExpressions;
var
  T,S,O:String;
  K,V,C:Int32;
begin
  // download all pages in thread and concat them
  repeat
    Inc(C);
    Str(C,S);
    S:=TIdHTTP.Create.Get('http://codegolf.stackexchange.com/questions/34705/output-the-answer-above-yours?page='+S);
    T:=T+S;
  until Pos('<span class="page-numbers next',S)=0;
  O:='Top!'; // initialize code string to 'Top!'
  for T in TRegEx.Split(T,'<a name="') do begin
    S:=T;
    Val(Copy(S,1,Pos('"',S)-1),K,C); // try to extract user id
    if C=1then Continue; // if failed, continue loop
    Delete(S,1,Pos('post ">',S)+6); // prepare S for next parse
    Val(Copy(S,1,Pos('<',S)-1),V,C); // try to extract vote count
    C:=Pos('<code>',S); // check if <code> tag exists
    if(C=0)or(V<0)then Continue; // make sure vote count is positive and <code> tag exists
    if K=34844then Break; // if its our answer, break the loop
    O:=Copy(S,C+6,Pos('</code>',S)-C-6); // get string in <code> tag
  end;
  Write(O); // write <code> string
end.

Cách chạy:

app.exe > output.txt

thật tuyệt, có thể đã làm điều đó thay vì sử dụng các đơn vị html .. thật xấu hổ tôi đã không nghĩ về điều đó: P
Teun Pronk

Cảm ơn. Ngoài ra, một trong những mã (nếu không chỉ) cũng xử lý nhiều trang.
Marko Paunovic

1

PHP - 412 - 422 - 416 - 252 - 248:

Vẫn đang trong quá trình hoàn thành, tôi chưa làm gì liên quan đến nhiều trang (cũng không có ai khác?)

Tôi đã giảm 200 ký tự bằng cách cắt ra rất nhiều dom, tại sao tìm kiếm đồ vật khi tôi chỉ có thể tìm thấy vị trí của chúng?

Đây cũng là mã golf đầu tiên của tôi! Tôi rất vui vì đã thực hiện nó trong những năm 200 và sử dụng các phương pháp dom. Nhờ bình luận, tôi mới cạo được thêm 4 nhân vật.

Tôi muốn làm một cái gì đó như jquery / jscript liên quan đến việc vượt qua dom, và vẫn đang làm việc để giảm bớt điều này. Có lẽ tôi có thể thoát khỏi việc tìm kiếm "asi" như tên người dùng của mình?

Golf:

<? $d=new DOMDocument;$d->loadHTMLFile("http://bit.do/JGta");$x=new DOMXPath($d);$r=$x->query("//*[@class='answer']");$a=-1;while($f=$r->item(++$a))if(strpos($f->nodeValue,"Asitaka"))echo$x->query(".//pre//code",$r->item($a-1))->item(0)->nodeValue;

Định dạng:

    <?php
$d = new DOMDocument();
$d->loadHTMLFile("http://bit.do/JGta");
$x = new DOMXPath($d);
$r = $x->query("//*[@class='answer']");
$a = -1;
while($f = $r->item(++$a))
        if ( stripos($f->nodeValue, "Asitaka")!= 0)
            echo $x->query(".//pre//code",$r->item($a-1))->item(0)->nodeValue;
?>

Chúc mừng


Dấu ngoặc trong new DOMDocument()và đóng ?>có thể được bỏ qua trong PHP.
jimmy23013

Cảm ơn, mất thêm 4 nhân vật. Hiện tại, tôi không thể tưởng tượng làm thế nào để làm cho nó ngắn hơn trừ khi tôi sử dụng các lớp khác nhau, các trình truy cập DOM rất tốn kém.
Asitaka

Lưu các ký tự bằng cách thay đổi tên người dùng của bạn!
DavidG

Tôi nghĩ rằng điều này là mát mẻ. Tôi chỉ đang cố gắng học phần truy vấn cho DOMXPath nhưng tôi phải thừa nhận rằng tôi đang thấy nó khó khăn. Tôi đã thử nó cho điều này nhưng không thể có được nó. Tôi đã thử nghiệm của bạn nhưng có vẻ như đang báo cáo một trong hai bên trên nó, không phải là một trong những trực tiếp ở trên. Tôi chắc chắn đó là một sửa chữa nhanh chóng nhưng chỉ nghĩ rằng tôi sẽ đề cập đến nó.
Paul Drewett

Theo dõi thông tin này "Vui lòng xem thứ tự khi bạn mở trang này trong trình duyệt riêng tư. Nó khác với thứ tự khi bạn đăng nhập - core1024" từ nhận xét câu trả lời khác nhau Tôi cũng cho rằng điều tương tự cũng xảy ra ở đây. Xin lỗi vì điều đó.
Paul Drewett

1

Python 3, 197 191 byte

import urllib.request as u,gzip,json;p='Top!'
for r in json.loads(gzip.decompress(u.urlopen("http://bit.ly/2hN8TKV").read()).decode())["items"]:
 if r['answer_id']==82837:exit(p)
 p=r['body']

Các quy tắc không nói rằng tôi không thể sử dụng API và tôi không thể sử dụng công cụ rút ngắn url.

https://tinyurl.com/hdemk76mở rộng thành https://api.stackexchange.com/2.2/questions/34705/answers?order=desc&sort=votes&site=codegolf&filter=withbody&pagesize=100 Điều này chỉ hoạt động nếu nó nằm trong 100 câu trả lời hàng đầu được sắp xếp theo phiếu bầu.


-6 nếu bạn thay thế https://tinyurl.com/hdemk76bằnghttp://bit.ly/2hN8TKV
Taylor Scott
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.