Tôi đã tự hỏi ngày hôm qua nếu tôi có thể viết một chương trình để kết hợp thông qua một tìm kiếm từ nhất định và đưa ra câu trả lời. Nó thực sự dễ dàng đáng ngạc nhiên. Bây giờ tôi tự hỏi làm thế nào nhỏ chúng ta có thể nhận được.
Quy tắc
- Đầu vào đầu tiên của bạn là một chuỗi hoặc tập hợp gồm n dòng, mỗi dòng dài n ký tự
- Đầu vào thứ hai của bạn là một danh sách các từ ở bất kỳ định dạng nào cần tìm trong câu đố
- Tất cả các từ trong danh sách tìm kiếm được đảm bảo có trong câu đố
- Các từ có thể được định hướng theo bất kỳ hướng nào trong bốn hướng chính, cũng như theo đường chéo cả về phía trước và phía sau
- Chỉ các ký tự chữ hoa chữ thường sẽ có mặt trong câu đố
- Mã của bạn phải tìm mọi từ trong chuỗi tìm kiếm và xuất vị trí tọa độ của chữ cái bắt đầu, trong đó 0,0 là ký tự trên cùng bên trái.
- Trong trường hợp bạn định vị nhiều hơn một thể hiện của cùng một từ, bạn có thể xử lý nó theo cách bạn muốn. Xuất nó nhiều lần, hoặc chỉ một lần, tùy bạn
Ví dụ / Trường hợp kiểm tra
Đưa ra bảng sau:
ABCD
EFGH
IJKL
MNOP
Và chuỗi tìm kiếm sau:
ABCD,CGKO,POMN,NJF,AFKP,CFI,LGB,MJGD
Chương trình của bạn sẽ xuất ra các mục sau, theo bất kỳ thứ tự nào:
ABCD at 0,0
CGKO at 0,2
PONM at 3,3
NJF at 3,1
AFKP at 0,0
CFI at 0,2
LGB at 2,3
MJGD at 3,0
Như mọi khi, câu trả lời ngắn nhất sẽ thắng