Вступ
Боб любить мати різні паролі для кожного веб-сайту, який він використовує. Він хоче паролі в спеціальному форматі, щоб він міг запам'ятати. Допоможіть йому, створивши генератор паролів, який є максимально коротким за довжиною коду, тому що він любить зберігати речі короткими, як його ім'я.
Виклик
Створіть Боб генератор паролів, який приймає чотири параметри -
- Адреса домену, (наприклад: 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 bob williams 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?