Задачи
March 1, 2022

Задача. Зигзаг-шифр

Рассмотрим строку "PAYPALISHIRING". Строка записывается зигзагом в заданном количестве строк.

Например так:

Далее читаем строку построчно: "PAHNAPLSIIGYIR". Необходимо написать алгоритм шифровки заданной строки и заданного количества строк.

Входные данные: строка содержит только буквы английского алфавита, размер строки от 1 до 1000. N - количество строк от 1 до 1000.

Примеры:

  1. "PAYPALISHIRING"; N = 3
    Output: "PAHNAPLSIIGYIR"
    Пояснение: смотри рисунок выше.
  2. "PAYPALISHIRING"; N = 4
    Output: "PINALSIGYAHRPI"
    Пояснение:

Разбор

Задача сводится на простую разбивку подзадач и циклов, которые моделируют проход по зигзагу.

Алгоритм:

  1. Создаем список списков.
  2. Идем по строке от начала до конца.
    2.1. 1й подцикл идет по столбцу вниз.
    2.2. Далее идем по диагонали наверх.
  3. Список списков переводим в результрующую строку.

Реализация

Play-test

https://dotnetfiddle.net/y7vTUu