Câu hỏi này được viết bởi vì "Thing Explainer" rất thú vị để đọc và cho tôi một ý tưởng.
Viết "công cụ khiến máy tính làm mọi thứ" đọc / lấy một tập hợp các chữ cái, số và những thứ như thế này "#%|?
và trả về True / 1
nếu tất cả các từ là một phần của bộ này .
Nếu tất cả các từ không phải là một phần của tập hợp đó, hãy trả lại các từ không phải là một phần của tập hợp đó.
Trang web này có thể được coi là chính xác trong mọi trường hợp. Các quy tắc được viết để làm theo thông số kỹ thuật trên trang web đó.
Ví dụ:
Sự thật :
Mã sẽ trả về một giá trị trung thực nếu toàn bộ văn bản trên dòng ngang đầu tiên được dán làm đầu vào.
Các dòng sau sẽ trả về giá trị trung thực (đầu vào được phân tách bằng ###
)
This returns "Hello, World!"
###
tHiS rEtUrNs TrUe...
###
Thing Explainer is a book written by a man.
The man writes books with simple words.
###
This set of stuff "#!^{>7( must return true
Falsey :
Trong các ví dụ sau, đầu vào và đầu ra được phân tách bằng ***
. Các trường hợp thử nghiệm khác nhau được phân tách bằng ###
.
This code doesn't return "Hello, World!"
***
code
###
tHiS rEtUrN"s false...
***
s
false
Quy tắc chi tiết hơn:
- Bạn có thể sử dụng điều này để kiểm tra mã của bạn.
- Các chữ cái không được hiểu là khoảng trắng bởi mã, ngoại trừ các từ như
'wasn't'
. Các từ có dấu nháy đơn trả vềtrue
được bao gồm trong danh sách- Ví dụ:
foo123bar
nên trả vềfoo
vàbar
, vì chúng không phải là một phần của danh sách và123
có thể được hiểu là khoảng trắng
- Ví dụ:
- Đầu vào sẽ chỉ chứa các điểm mã ASCII có thể in được [10, 32-126].
- Từ có thể chứa các chữ cái trường hợp hỗn hợp. Xem trường hợp thử nghiệm thứ hai.
- Danh sách các từ
- nên được lấy làm đầu vào (STDIN, đối số hàm hoặc tương đương)
- có thể được sửa đổi (các từ có thể được phân tách bằng dòng mới, dấu phẩy, v.v. và bạn có thể sắp xếp danh sách)
- Lưu ý rằng bạn không thể sử dụng danh sách này (nó không giống nhau)
- Đầu ra có thể ở bất kỳ định dạng nào bạn thích
- Đầu ra có thể là trường hợp trên, dưới hoặc hỗn hợp (tùy chọn)
- Không có ký hiệu nào ở đầu ra
Đối với hồ sơ, Jonathan Allan đã tìm thấy một trường hợp góc kỳ lạ: việc triển khai trên XKCD sẽ thực sự bỏ qua bất kỳ chữ cái nào sau dấu nháy đơn cho đến không [AZ] [az] ['] - chẳng hạn find's found
, và find'qazxswedc found'
cả hai đều không trả về, trong khi find'qazx.swedc found
trả về swedc
.
Bạn có thể chọn nếu bạn muốn trả lại bất cứ thứ gì cho find'qazxswedc found'
hoặc trả lại qazxswedc
. Quay trở lại qazx, swedc
cho find'qazx.swedc
cũng là OK.
Boolean
hoặc Array<String>
, việc trả về một mảng / danh sách trống có được phép không?
1
. Một đầu ra trống không được phép.
find'qazxswedc
đầu vào. Có phải chúng ta hay chúng ta không nên chia rẽ về dấu nháy đơn? Ví dụ: isn't
trả về true
(nó có trong danh sách), nhưng isn
trả về isn
, vì nó không có trong danh sách. Từ logic đó, tôi đã đi với "không phân chia dấu nháy đơn" và cứ thế find'qazxswedc found
trả về find'qazxswedc
.