Thời gian cho một thực hành Pyth khác. Tôi trình bày ở đây 8 báo cáo vấn đề với một giải pháp Pyth mỗi. Những giải pháp này được viết bởi một người mới bắt đầu Pyth. Anh ấy khá hài lòng về các giải pháp này, vì chúng ngắn hơn rất nhiều so với câu trả lời Python của anh ấy. Nhiệm vụ của bạn là chỉ cho anh ta tốt hơn. Tạo các chương trình tương đương nhưng ngắn hơn.
Đây là một thách thức về các thủ thuật và tối ưu hóa có thể được sử dụng khi chơi golf ở Pyth. Người chơi gôn Pyth có thể nhận ra nhiều mánh khóe liên quan, dẫn đến các giải pháp ngắn hơn. Tuy nhiên, một số vấn đề sẽ yêu cầu một số cách tiếp cận khác thường hiếm khi được sử dụng. Một số mánh mà tôi thực sự chưa từng thấy trong tự nhiên. Nhưng không có giải pháp nào yêu cầu bất kỳ lỗi hoặc hành vi lạ nào, đó không phải là cố ý của (các) nhà thiết kế của Pyth. Tất cả các câu trả lời phải có giá trị cho cam kết Pyth gần đây nhất ( 2b1562b ) kể từ khi đăng câu hỏi này. Bạn có thể sử dụng trình thông dịch Pythđể thử nghiệm. Nó được cập nhật ngay bây giờ và tôi không mong đợi bất kỳ thay đổi lớn nào trong Pyth, điều đó sẽ làm mất hiệu lực các giải pháp tối ưu hoặc thực hiện các giải pháp ngắn hơn. Trình thông dịch trực tuyến cũng có tính năng Tham khảo nhân vật mới. Vì nó khá mới, bạn cũng có thể (nên) sử dụng các tài liệu cũ , trong trường hợp có gì đó không đúng hoặc bị thiếu.
Mục tiêu: Các giải pháp tham chiếu tổng cộng 81 byte. Mục tiêu của bạn là đánh bại nó càng nhiều càng tốt. Việc gửi giải quyết tất cả 8 vấn đề với tổng số byte nhỏ nhất sẽ thắng. Tiebreaker là ngày nộp.
Tất nhiên chỉ có bài nộp là hợp lệ, trong đó có giải pháp cho tất cả 8 vấn đề. Bạn có thể sử dụng triển khai tham chiếu, nếu bạn không thể cải thiện điểm của một (hoặc nhiều) vấn đề cụ thể.
Các giải pháp của bạn phải in chính xác đầu ra giống như các giải pháp tham chiếu. Ngoại trừ một dòng mới tùy chọn.
Vì đây là thông lệ của Pyth, nên chỉ các chương trình được viết bằng ngôn ngữ Pyth mới được phép.
Trả lời: Vui lòng làm hỏng toàn bộ câu trả lời của bạn, ngoại trừ tổng số điểm của bạn. Dự định rằng bạn không nhìn vào câu trả lời của người khác trước khi gửi câu trả lời của riêng bạn. Bạn có thể tạo spoilers bằng cách đặt>! ở phía trước của mỗi dòng, như:
>! Problem 1: V9m?>dNd0S9 (11 bytes)
>! Problem 2: VTN)VGN (7 bytes)
>! ...
Tôi hy vọng tôi đã không chọn những vấn đề quá khó khăn hoặc quá nhỏ nhặt. Hy vọng sẽ có nhiều người tham gia và cho tất cả mọi người để có được một vài hiểu biết mới về Pyth. Chúc bạn chơi golf vui vẻ!
Vấn đề 1:
Tạo ma trận 9x9 sau và in nó:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 0, 3, 4, 5, 6, 7, 8, 9]
[0, 0, 0, 4, 5, 6, 7, 8, 9]
[0, 0, 0, 0, 5, 6, 7, 8, 9]
[0, 0, 0, 0, 0, 6, 7, 8, 9]
[0, 0, 0, 0, 0, 0, 7, 8, 9]
[0, 0, 0, 0, 0, 0, 0, 8, 9]
[0, 0, 0, 0, 0, 0, 0, 0, 9]
Giải pháp tham khảo ( Liên kết ):
V9m?>dNd0S9 (11 bytes)
Vấn đề 2:
In tất cả các chữ số và tất cả các chữ cái trên các dòng riêng biệt:
0
...
9
a
...
z
Giải pháp tham khảo ( Liên kết ):
VTN)VGN (7 bytes)
Vấn đề 3:
Tìm bảng màu nhỏ nhất về mặt từ vựng, lớn hơn về mặt từ vựng hoặc bằng với một chuỗi đầu vào chứa các chữ cái viết thường và giống với chuỗi đầu vào.
a -> a
abc -> aca
adcb -> adda
Giải pháp tham khảo ( Liên kết ):
hf&gTzqT_T^Glz (14 bytes)
Vấn đề 4:
Kiểm tra, nếu một số nằm trong phạm vi [0, số đầu vào). Điều này cũng sẽ làm việc cho phao.
4, 6 -> True
5.5, 6 -> True
6, 6 -> False
6, 6.1 -> True
Giải pháp tham khảo ( Liên kết ):
&gQ0<QE (7 bytes)
Các định dạng tham khảo là to be tested value<newline>end value
. Bạn có thể chọn một định dạng đầu vào khác nhau tuy nhiên. Điều quan trọng chỉ là, bạn hoàn thành báo cáo vấn đề và đưa ra kết quả chính xác.
Vấn đề 5:
Phân tích chuỗi đầu vào có định dạng "\ d + [a-zA-Z] +". Lưu ý rằng số thực sự phải là một số, không phải là một chuỗi chứa các chữ số.
'123Test' -> [123, 'Test']
Giải pháp tham khảo ( Liên kết ):
A.ggk\Az,sGH (12 bytes)
Vấn đề 6:
Tính tổng các số, được phân tách bằng một hoặc nhiều dấu phẩy. Bạn có thể giả sử rằng có ít nhất một số trong chuỗi.
11,2,,,3,5,,8 -> 29
Giải pháp tham khảo ( Liên kết ):
svM:z",+"3 (10 bytes)
Vấn đề 7:
Đọc số nguyên dương từ đầu vào cho đến khi bạn nhận được số 0. In tổng của tất cả các số.
Giải pháp tham khảo ( Liên kết ):
WJE=+ZJ)Z (9 bytes)
Vấn đề 8:
Tổng hợp tất cả các phần tử của một ma trận vuông, ngoại trừ các phần tử của đường chéo chính (góc trên bên trái đến góc dưới bên phải).
Giải pháp tham khảo ( Liên kết ):
-ssQs.e@bkQ (11 bytes)