Thách thức là tìm ra một chuỗi các ký tự không thể xuất hiện trong bất kỳ chương trình pháp lý nào trong ngôn ngữ lập trình bạn chọn. Điều đó bao gồm các bình luận, chuỗi hoặc các phần "không thể thực thi" khác.
Thử thách
- Chương trình của bạn có thể dành riêng cho một phiên bản cụ thể hoặc việc triển khai môi trường trình biên dịch / trình thông dịch / thời gian chạy ngôn ngữ của bạn. Nếu vậy, xin vui lòng chỉ định các chi tiết.
- Chỉ cho phép tùy chọn trình biên dịch / trình thông dịch / thời gian chạy tiêu chuẩn. Bạn không thể chuyển một số cờ lạ cho trình biên dịch của mình để có kết quả cụ thể (ví dụ: chuyển cờ để chuyển cảnh báo thành lỗi).
- Nếu ngôn ngữ lập trình của bạn yêu cầu mã hóa cụ thể (ví dụ UTF-8), chuỗi của bạn cũng phải được mã hóa chính xác (nghĩa là các chuỗi không thành công do lỗi giải mã ký tự không được phép).
- Mỗi nhân vật trong bài nộp của bạn phải được chấp nhận trong một chương trình pháp lý; nghĩa là, bạn không thể chỉ sử dụng một ký tự luôn bị từ chối.
- Trình biên dịch / trình thông dịch / thời gian chạy phải đưa ra lỗi khi được cung cấp bất kỳ mã nguồn nào chứa chuỗi của bạn dưới dạng chuỗi con. Lỗi không nhất thiết phải giống nhau trên các chương trình - một chuỗi nhúng chuỗi của bạn có thể gây ra lỗi cú pháp, trong khi một lỗi khác có thể gây ra lỗi thời gian chạy.
Chấm điểm
- Chuỗi bất hợp pháp ngắn nhất cho mỗi ngôn ngữ chiến thắng.
- Bạn nên giải thích tại sao chuỗi của bạn là bất hợp pháp (tại sao nó không thể xuất hiện ở bất kỳ đâu trong chương trình hợp pháp).
- Tranh chấp giải pháp không chính xác trong các ý kiến. Cụ thể hơn, bạn nên cung cấp một liên kết đến TIO hoặc tương đương thể hiện một chương trình pháp lý (tức là một chương trình không tạo ra bất kỳ lỗi nào) có chứa chuỗi con được đề xuất.
- Một số ngôn ngữ (ví dụ Bash, Batch, Perl) cho phép dữ liệu nhị phân tùy ý được thêm vào chương trình mà không ảnh hưởng đến tính hợp lệ (ví dụ: sử dụng
__DATA__
trong Perl). Cho các ngôn ngữ như vậy, bạn có thể gửi một giải pháp mà có thể xuất hiện chỉ trong một phần dấu như vậy. Hãy chắc chắn để ghi chú về điều đó trong câu trả lời của bạn. (Định nghĩa của "phần đuôi" này phụ thuộc vào ngôn ngữ, nhưng nói chung có nghĩa là bất kỳ văn bản nào sau khi trình phân tích cú pháp đã hoàn toàn ngừng đọc tập lệnh).
Thí dụ
Trong Python, tôi có thể gửi
x
"""
'''
nhưng điều này có thể được nhúng vào chương trình lớn hơn
"""
x
"""
'''
y
'''
vì vậy nó không được chấp nhận