Các hệ thống chính là một ghi nhớ thiết bị để chuyển đổi số thành chữ để họ có thể được ghi nhớ dễ dàng hơn.
Nó dựa trên cách các từ phát âm theo ngữ âm, nhưng để mọi thứ đơn giản cho thử thách, chúng ta sẽ chỉ quan tâm đến cách các từ được đánh vần. Điều này có nghĩa là sẽ có một số chuyển đổi không chính xác, nhưng không sao.
Để chuyển đổi một số thành một từ bằng cách sử dụng hệ thống chính được đơn giản hóa của chúng tôi:
- Thay thế
0bằngshoặcz. (Một số có thểsvà một số có thểz. Cùng đi bên dưới.)- Thay thế từng
1cóthaydhayth.- Thay thế
2bằngn.- Thay thế
3bằngm.- Thay thế
4bằngr.- Thay thế
5bằngl.- Thay thế từng
6cójhayshhaych.- Thay thế từng
7cókhaychayghayq.- Thay thế từng
8cófhayv.- Thay thế từng
9cóphayb.- Thêm các chữ cái
aehiouwxyở bất cứ đâu với số lượng bất kỳ để tạo ra một từ tiếng Anh thực sự, nếu có thể .
Ngoại lệ duy nhất làhcó thể không được chèn sau mộtshoặcc.Số thực sự có thể là bất kỳ chuỗi nào trong các chữ số 0-9 (không có số thập phân hoặc dấu phẩy hoặc dấu).
Từ chỉ có thể chứa các chữ cái viết thường az.
Ví dụ
Số 32phải được chuyển đổi thành ?m?n?, trong đó ?đại diện cho bất kỳ chuỗi hữu hạn nào được tạo từ các chữ cái aehiouwxy(một chuỗi từ monoid miễn phí nếu bạn thích). Có nhiều cách điều này có thể được làm thành một từ tiếng Anh thật: mane, moon, yeomanvv
Số 05có thể được chuyển đổi thành ?s?l?hoặc ?z?l?. Một số khả năng là easily, hassle, và hazel. Từ shawlnày không được phép vì hcó thể không được đặt sau s; nó sẽ được đọc không chính xác như là 65.
Thử thách
Viết chương trình hoặc hàm lấy một chuỗi các chữ số 0-9 và tìm tất cả các từ mà nó có thể được chuyển đổi thành sử dụng hệ thống ghi nhớ chính được đơn giản hóa.
Chương trình của bạn có quyền truy cập vào tệp văn bản danh sách từ xác định tất cả các từ tiếng Anh "thực" là gì. Có một từ az chữ thường trên mỗi dòng của tệp này và bạn có thể tùy ý giả sử nó có một dòng mới. Dưới đây là danh sách các từ thực bạn có thể sử dụng để kiểm tra. Bạn có thể giả sử tệp danh sách từ này được gọi f(hoặc một cái gì đó dài hơn) và nằm trong bất kỳ thư mục thuận tiện.
Đối với hình phạt 35 byte (thêm 35 vào điểm số của bạn), bạn có thể giả sử danh sách từ đã được tải vào một biến dưới dạng danh sách các chuỗi. Điều này chủ yếu dành cho các ngôn ngữ không thể đọc tệp, nhưng bất kỳ nội dung gửi nào cũng có thể tận dụng lợi thế của nó.
Chương trình của bạn phải xuất tất cả các từ trong danh sách từ mà số đầu vào có thể được chuyển đổi thành. Chúng nên được in ra thiết bị xuất chuẩn (hoặc tương tự), mỗi dòng trên một dòng (với một dòng mới tùy chọn) hoặc chúng có thể được trả về dưới dạng danh sách các chuỗi nếu bạn chọn viết hàm. Danh sách từ không nhất thiết phải được sắp xếp theo thứ tự chữ cái và đầu ra không cần phải là một trong hai.
Nếu không có từ nào có thể thì đầu ra (hoặc danh sách) sẽ trống. Đầu ra cũng trống nếu chuỗi trống là đầu vào.
Đưa đầu vào qua stdin, dòng lệnh hoặc làm đối số chuỗi cho hàm. Danh sách từ, hoặc tên tệp của nó, không nên là một phần của đầu vào, chỉ là chuỗi chữ số.
Bạn chỉ kết hợp các từ đơn trong danh sách từ, không phải các chuỗi từ. Từ noonnày có thể là một trong những kết quả cho 22, nhưng chuỗi từ no onesẽ không.
Các trường hợp thử nghiệm
Giả sử đây là danh sách từ:
stnmrljkfp
zthnmrlshqfb
asatanamaralajakafapa
aizxydwwwnhimouooraleshhhcavabe
zdnmrlshcvb
zdnmrlshchvb
sthnmrlchgvb
shthnmrlchgvb
bob
pop
bop
bopy
boppy
Đầu vào 0123456789sẽ cung cấp cho tất cả các từ dài ngoại trừ zdnmrlshchvbvà shthnmrlchgvb:
stnmrljkfp
zthnmrlshqfb
asatanamaralajakafapa
aizxydwwwnhimouooraleshhhcavabe
zdnmrlshcvb
sthnmrlchgvb
Đầu vào 99sẽ cho:
bob
pop
bop
bopy
(Các từ đầu ra có thể theo thứ tự bất kỳ.)
Chấm điểm
Đệ trình ngắn nhất tính bằng byte thắng. Tiebreaker đi đến trình gửi đăng đầu tiên.
Trang web liên quan tiện lợi: numzi.com .