e-olymp 2034. WERTYU

Постановка задачи

Обычная ошибка при наборе состоит в том, что вы помещаете ваши руки на клавиатуру на один ряд правее верной позиции. Тогда «[latex]Q[/latex]» печатается как «[latex]W[/latex]», «[latex]J[/latex]» печатается как «[latex]K[/latex]» и т.д. Ваша задача состоит в расшифровке сообщения, напечатанного таким образом.

Входные данные

Входные данные состоят из нескольких строк текста. Каждая строка может содержать цифры, пробелы, прописные буквы (кроме [latex]Q, A, Z [/latex]) и знаки препинания, показанные выше [кроме обратной кавычки (`)]. Клавиши, обозначенные словами [Tab, BackSp, Control и т.д.], не представлены во входных данных.

Выходные данные

Вы должны заменить каждую букву и знак пунктуации тем, который находится непосредственно слева от него на клавиатуре QWERTY, изображенной выше. Пробелы во входных данных должны повторяться в выходных.

Тесты:

Входные данные Выходные данные
O S, GOMR YPFSU/ I AM FINE TODAY.
,u vpp; vpfr MY COOL CODE
VPFR RBRTUEJRTR. RBRTUFSU CODE EVERYWHERE, EVERYDAY

Код программы:

Описание решения:

Для решения поставленной задачи необходимо задать строку, в которой будем хранить все символы с условия, которые необходимо выводить. Так как не указано количество строк входных данных, то будем принимать до конца входного потока.

Для каждой строки будем просматривать все символы, и для каждого из них будем использовать следующий алгоритм:

  1. Если данный символ пробел – то выведем его на экран.
  2. Иначе, с помощью функции [latex]Indexof() [/latex] найдем номер вхождения данного символа в проверочном массиве y, и выведем предыдущий элемент из этого массива.
  3. Повторяем пункты 1, 2 до тех пор, пока не дойдем до конца строки [latex]x[/latex]. После этого перейдем на новую строку.

Условие задачи на сайте e-olymp.com можно найти здесь.

Код программы

5 thoughts on “e-olymp 2034. WERTYU

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *