Вступление
Боб любит иметь разные пароли для каждого сайта, который он использует. Он хочет пароли в специальном формате, чтобы он мог запомнить. Помогите ему, сгенерировав генератор паролей, максимально короткий по длине кода, потому что ему нравится делать короткие слова так же, как его имя.
Вызов
Постройте Боба генератор паролей, который принимает четыре параметра -
- Адрес домена, (например: stackexchange.com)
- Имя,
- фамилия,
- Дата и год рождения.
и выводит строку, которая подверглась следующим преобразованиям.
Каждый пароль имеет шаблон, основанный на длине l доменного имени. Если l простое, то шаблон имеет такую форму -
[birth-date][domain-name][lastname][birth-year][symbol]
иначе это имеет такую форму -
[symbol][birth-year][firstname][domain-name][birth-date],
Поле символа будет иметь значения в зависимости от типа домена.
.com -> $$$ .org -> &&& .net -> %%% .edu -> +++ .gov -> @@@ .mil -> >>> по умолчанию -> ~~~
Теперь он также хочет запустить шифр Цезаря над полями [firstname][domain-name][lastname]. Направление сдвига правильное, если l простое, иначе оно слева. Значение сдвига определяется значением сложения даты рождения и года.
После вышеупомянутого процесса текст не может быть легко запомнен, поэтому он хочет, чтобы зашифрованный текст был произнесенным. Для этого он хочет заменить каждый третий последовательный согласный гласным в алфавитном порядке (т. Е. aeiou).
Наконец, он хочет удалить последовательные вхождения одних и тех же букв.
пример
Входные данные - stackexchange.com Боб Уильямс 0894 Выходные данные - 08qraicvafyecugjigyoq94 $$$.
Пояснение:
Шаблон пароля есть [birth-date][domain-name][lastname][birth-year][symbol], потому что длина доменного имени stackexchangeпростое. Символ будет $$$как тип домена .com.
Давайте заполним эти значения в шаблоне 08stackexchangewilliams94$$$. Теперь Цезарь Шифр должен быть запущен на полях [firstname][domain-name][lastname](в данном случае это просто фамилия). Направление сдвига правильное, потому что l простое, а значение сдвига равно 08+94 = 102.
Итак, 08stackexchangewilliams94$$$превращается в 08qryaicvafylecugjjgykq94$$$. Теперь каждый третий последовательный согласный заменяется гласным - 08qraaicvafyeecugjigyoq94$$$ все последующие вхождения одного и того же письма удаляются - 08qraicvafyecugjigyoq94$$$. Не волнуйся, это произносится Бобом.
Дополнительная информация
- Адрес домена, имя и фамилия содержат только строчные буквы.
- Адрес домена всегда будет состоять только из домена второго уровня и домена верхнего уровня, как
stackexchange.comи нетcodegolf.stackexchange.com. Кроме того, домены, подобные.co.uk, не разрешены, но только.ukили.inдействительны. - Замена гласного в алфавитном порядке циклична. Я имею в виду после
u,aиспользуется для замены. - Диапазон ASCII для шифра Цезаря составляет 97 - 122 включительно.
- Вы можете принять участие, как описано здесь .
- Выход должен быть строкой.
- Формат даты и года рождения есть
ddи. Такyyчто02приемлемо и2нет.
Это код-гольф, поэтому выигрывает самый короткий код в байтах. Счастливого гольфа!
0894который добавляет до 102объяснения 08+96=106. Зашифрованный текст, кажется, использует 102значение. Просто небольшое несоответствие, которое может сбить с толку ...
defualtне default
stackexchange.com, неimg.stackexchange.com? А как насчет страновых доменовbbc.co.uk?