10 Clickbaits bạn không thể cưỡng lại


8

Viết chương trình / chức năng / tập lệnh lấy số tự nhiên i từ 1 đến 10 làm đầu vào và xuất URL của Câu hỏi với câu hỏi nóng nhất thứ i trên Cổng Golf Code

Việc đặt hàng phải giống như trong https://codegolf.stackexchange.com/?tab=hot . Ví dụ:
đầu vào 1
đầu ra /codegolf/127047/the-spain-license-sheet-game
(tại điểm chỉnh sửa này)

Không có hạn chế mạnh mẽ đối với đầu ra, miễn là url có thể được truy xuất hợp lý. Đầu ra hợp lệ bao gồm chuỗi, in giao diện điều khiển, vv

Đó là Code Golf, vì vậy mã ngắn nhất trong Byte thắng.

Ghi chú

Nếu chương trình của bạn tự động mở trình duyệt với trang web, nó được tính là đầu ra hợp lệ và hoàn toàn tuyệt vời.

Nếu chương trình của bạn không truy xuất xếp hạng từ thông tin hiện tại (tức là mã hóa các liên kết), thì nó không hợp lệ.

Cuộc thi kết thúc vào cuối tháng sáu.

Như đã hỏi: Việc lập chỉ mục phải dựa trên 1, tức là: đầu vào 1 phải trả về trang web đầu tiên của các câu hỏi nóng nhất.

Bình luận

Tôi hy vọng câu hỏi này không quá clickbaity, vì chương trình biên tập trao đổi ngăn xếp đã chế giễu tôi cho tiêu đề. Ban đầu tôi đã lên kế hoạch cho thử thách này với các xu hướng Youtube, nơi nó sẽ phù hợp hơn.


1
Re: Stack Exchange chế giễu bạn cho tiêu đề câu hỏi, nó chỉ kích hoạt từ youcụ thể. Giả định được đưa ra bởi phần mềm là nếu bạn hỏi mọi người họ nghĩ gì về điều gì đó, thì câu hỏi có lẽ sẽ bị đóng lại vì chủ yếu dựa trên ý kiến ​​(như thể câu hỏi dựa trên thực tế, nó sẽ không thành vấn đề người bạn hỏi). Tất nhiên, heuristic đơn giản này có rất nhiều tích cực sai.

Tôi ngạc nhiên câu trả lời không sử dụng trình rút gọn URL: v.ht/b6QI
Kỹ sư Toast

@EngineerToast Chúng thường không được phép.
Esolanging Fruit

@ Challenger5 Thật vậy . Tôi có lẽ nên đọc lại danh sách đó ...
Kỹ sư Toast

Câu trả lời:


1

PowerShell v5, 83 byte

(irm api.stackexchange.com/questions?sort=hot`&site=codegolf).Items["$args"-1].Link

irmlà viết tắt của Invoke-RestMethodtự động phân tích cú pháp Json, làm cho cuộc sống khá dễ dàng.

thêm bốn byte ( sapscho start-process) cho phiên bản mở trong trình duyệt.

saps(irm api.stackexchange.com/questions?sort=hot`&site=codegolf).Items["$args"-1].Link

4

Yêu cầu Python + , 128 byte

from requests import*
lambda n:get('http://api.stackexchange.com/questions?sort=hot&site=codegolf').json()['items'][n-1]['link']

3

Toán học, 125 byte

b="http://codegolf.stackexchange.com";b<>"/q/"<>StringCases[Import[b<>"?tab=hot","Text"],"ns/"~~a:DigitCharacter..:>a][[3#]]&

Chức năng ẩn danh. Không có đầu vào và trả về một chuỗi như đầu ra. Sẽ sử dụng nguồn cấp dữ liệu XML, nhưng dường như nó tuân theo một thứ tự khác so với trên trang.


3

Python 2.7, 195 byte

from urllib import*
import zlib, json
lambda n:json.loads(zlib.decompress(urlopen('http://api.stackexchange.com/questions?sort=hot&site=codegolf').read(),16+zlib.MAX_WBITS))['items'][n-1]['link']

Đây là câu trả lời tương tự của Dair , nhưng sử dụng Python 2


1
Chào mừng đến với PPCG!
Martin Ender

3

Python 3, 221 byte

from urllib.request import*
import zlib, json
lambda n:json.loads(zlib.decompress(urlopen('http://api.stackexchange.com/questions?sort=hot&site=codegolf').read(),16+zlib.MAX_WBITS),encoding='utf-8')['items'][n-1]['link']

Dựa trên câu trả lời của lò nướng . Ngoài ra, cảm ơn Oluwafemi Sule đã giúp tôi với một vấn đề tôi gặp phải.


Bạn có thể chỉnh sửa câu trả lời của mình và đề cập rằng đó là Python 3 không? Cảm ơn! :-)
Mauro Baraldi

2
@MauroBaraldi Đã chỉnh sửa. Xin lỗi vì điều đó.
Dair

2

Stratos , 28 byte

"-1"+
f"¹⁵s²&sort=hot"r"⁷s"@

Giải trình:

"-1"+                    Decrement the input, and store it.
f"¹⁵s²&sort=hot"         Fetch the contents of the URL api.stackexchange.com/questions?site=codegolf&sort=hot.
                r"⁷s"    Get the array named "items"
                     @   Get the nth element, where n is retrieved from storage.

Thử nó!


1

JavaScript (ES6), 106 byte

Trả về một Promise chứa đối tượng JSON cho câu hỏi mong muốn, bao gồm liên kết.

n=>fetch`//api.stackexchange.com/questions?sort=hot&site=codegolf`.then(r=>r.json()).then(j=>j.items[--n])
  • Hy sinh 2 byte cho phép lập chỉ mục 1.

Thử nó

f=
n=>fetch`//api.stackexchange.com/questions?sort=hot&site=codegolf`.then(r=>r.json()).then(j=>j.items[--n])
oninput=_=>f(+i.value).then(console.log)
f(i.value=1).then(console.log)
<input id=i type=number>


hm Tôi không chắc chắn vào lúc này làm thế nào để xử lý lập chỉ mục dựa trên 0, nhưng vì các câu trả lời khác dường như sử dụng lập chỉ mục dựa trên 1 và được chỉ định theo cách đó, câu trả lời của bạn được tính là 106 byte (vẫn là điểm cao nhất hiện tại)
Moartem

@Moartem: " Tôi không chắc chắn vào lúc này làm thế nào để xử lý lập chỉ mục dựa trên 0 " - Hãy cho tôi biết khi bạn tìm ra nó và tôi sẽ cập nhật câu trả lời của mình cho phù hợp. Tôi sẽ đề nghị cho phép lập chỉ mục 1 hoặc lập chỉ mục 0.
Xù xì

Tôi sẽ sửa nó thành 1-index, vì vậy tất cả đều có cùng một prequesites, xin vui lòng cập nhật câu trả lời của bạn. Dù sao cũng cảm ơn đã chỉ ra điều này.
Moartem

@Moartem: Trả lời cập nhật. Để tham khảo trong tương lai, trừ khi không có lý do chính đáng, tiêu chuẩn là cho phép các giải pháp sử dụng lập chỉ mục mặc định của ngôn ngữ của họ.
Xù xì
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.