Giới thiệu
Enigma là một trong những máy mật mã rôto cơ điện đầu tiên được sử dụng trong Thế chiến II. Điều đó có nghĩa là sau khi một chữ cái được mã hóa, nó sẽ thay đổi khóa cho chữ cái tiếp theo. Điều này được coi là không thể phá vỡ bởi người Đức, do không gian quan trọng. Ngay cả vũ phu cũng gần như không thể. Tuy nhiên, đã có một lỗi thiết kế trong Enigma. Mã hóa một lá thư sẽ không bao giờ dẫn đến chính nó. Điều đó có nghĩa là bức thư A
có thể mã hóa đến mọi chữ cái trừ chữ cái A
.
Hãy lấy một ví dụ về một tin nhắn được mã hóa:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
Một từ tiếng Đức điển hình là WETTERBERICHT
, hoặc báo cáo thời tiết bằng tiếng Anh. Với công chúa ở trên, chúng ta có thể xác định vị trí của từ có thể là:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
^
Điều này là không thể, vì I
không thể mã hóa thành chính nó, vì vậy chúng tôi di chuyển trên 1 vị trí:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
^
Điều này cũng không thể, vì vậy chúng tôi di chuyển một nơi khác một lần nữa:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
^
Điều này một lần nữa là không thể. Trong thực tế, sự xuất hiện đầu tiên có thể WETTERBERICHT
là:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
0123456789012345678901234567890123456789012345678901234567890123
^
13
Vì vậy, chúng tôi trả về vị trí 0 chỉ mục của lần xuất hiện đầu tiên có thể xảy ra, đó là 13 .
Nhiệm vụ
- Đưa ra một thông điệp được mã hóa và một từ, tìm chỉ mục của lần xuất hiện đầu tiên có thể .
- Giả sử rằng chỉ các ký tự chữ cái viết hoa cơ bản sẽ được sử dụng (
ABCDEFGHIJKLMNOPQRSTUVWXYZ
). - Nếu không có điều xảy ra là tìm thấy, bạn có thể xuất bất kỳ tiêu cực số nguyên, nhân vật, hoặc không có gì (ví dụ
-1
,X
). - Đầu vào có thể được chấp nhận làm đối số, trên các dòng mới, danh sách hoặc bất cứ thứ gì khác.
- Đây là môn đánh gôn , vì vậy bài nộp có số byte ít nhất sẽ thắng!
Các trường hợp thử nghiệm
Input: BHGEFXWFTIUPITHHLPETTTCLOEWOELM, WETTERBERICHT
Output: 13
Input: ABCDEFGHIJKL, HELLO
Output: 0
Input: EEEEEEEEEEEE, HELLO
Output: -1
Input: XEEFSLBSELDJMADNADKDPSSPRNEBWIENPF, DEUTSCHLAND
Output: 11
Input: HKKH, JJJJJ
Output: -1
E
sẽ không bao giờ dẫn đến một E
. Đó là những gì toàn bộ thách thức này là về.