Некоторый алгоритм из одной цепочки символов получает новую цепочку следующим образом. Сначала вычисляется длина исходной цепочки символов; если она нечётна, то удаляется последний символ цепочки, а если чётна, то в начало цепочки добавляется символ О. В полученной цепочке символов каждая буква заменяется буквой, следующей за ней в русском алфавите (А — на Б, Б — на В и т. д., а Я — на А). Получившаяся таким образом цепочка является результатом работы алгоритма. Например, если исходной была цепочка РУКА, то результатом работы алгоритма будет цепочка ПСФЛБ, а если исходной была цепочка СОН, то результатом работы алгоритма будет цепочка ТП.
Дана цепочка символов ФОН. Какая цепочка символов получится, если к данной цепочке применить описанный алгоритм дважды (т. е. применить алгоритм к данной цепочке, а затем к результату вновь применить алгоритм)? Русский алфавит: .
ОТВЕТ: ПЦР
a = list("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ")
q = list("ФОН")
def alg(q):
if len(q) % 2 == 0:
q.insert(0,"О")
else:
q.pop(-1)
for i in range(len(q)):
f = a.index(q[i])
q[i] = a[f+1 if f+1 != len(a) else 0]
return q
q = alg(q)
q = alg(q)