Loading Now

caesarBoxCipherEncoding

Caesar Box là một mật mã chuyển vị đơn giản được sử dụng trong Đế chế La Mã. Nó được mô tả bằng 2 bước dưới đây:

  1. Các ký tự của thông điệp đã cho được chia thành n dòng có độ dài bằng nhau và xếp chồng lên nhau;
  2. Các chữ cái từ hình chữ nhật tìm được được viết từ trên xuống dưới theo cột dọc.

Cho một từ, đếm số n khác nhau sao cho tin nhắn thu được bằng cách mã hoá 2 lần giống như tin nhắn ban đầu.

Ví dụ

  • Với message = "abaaba", đầu ra là
    caesarBoxCipherEncoding2(message) = 2.

    Không thể áp dụng thuật toán mã hoá cho n = 2 hay n = 3.
  • n = 2:
    • Mã hoá đầu tiên: "abaaba" -> "aabbaa";

      aba
      aba
      
    • Mã hoá thứ hai: "aabbaa" -> "abaaba".

      aab
      baa
      
  • n = 3:
    • Mã hoá đầu tiên: "abaaba" -> "aabbaa";

      ab
      aa
      ba
      
    • Mã hoá thứ hai: "aabbaa" -> "abaaba".

      aa
      bb
      aa
      

Đầu vào/Đầu ra

  • [giới hạn thời gian chạy] 0.5 giây

  • [đầu vào] string message

    Điều kiện tiền đề:
    4 ≤ message.length ≤ 100.

  • [đầu ra] integer

    số lượng ns được mô tả ở trên sao cho 1 < n < message.length.

Post Comment

Contact