Wprowadzenie
Bob lubi mieć różne hasła dla każdej strony internetowej, z której korzysta. Chce hasła w specjalnym formacie, aby mógł zapamiętać. Pomóż mu, budując generator haseł, który ma możliwie najkrótszą długość kodu, ponieważ lubi skróty tak jak jego imię.
Wyzwanie
Zbuduj Bob generator haseł, który przyjmuje cztery parametry -
- Adres domeny, (np .: stackexchange.com)
- Imię,
- nazwisko,
- Data i rok urodzenia.
i wyprowadza ciąg, który przeszedł następujące transformacje.
Każde hasło ma szablon oparty na długości l nazwy domeny. Jeśli l jest liczbą pierwszą, szablon ma następującą postać -
[birth-date][domain-name][lastname][birth-year][symbol]
inaczej jest w tej formie -
[symbol][birth-year][firstname][domain-name][birth-date].
Pole symbolu będzie miało wartości oparte na typie domeny.
.pl -> $$$ .org -> &&& .net -> %%% .edu -> +++ .gov -> @@@ .mil -> >>> domyślnie -> ~~~
Teraz chce także poprowadzić szyfr cezarowy nad polami. - [firstname][domain-name][lastname]Kierunek przesunięcia jest właściwy, jeśli l jest liczbą pierwszą, to jest lewą. Wartość przesunięcia zależy od wartości dodanej daty urodzenia i roku.
Po powyższym procesie tekst nie może być łatwo zapamiętany, dlatego chce, aby zaszyfrowany tekst był wymawiany. W tym celu chce zastąpić co trzecią z kolei spółgłoskę samogłoską w kolejności alfabetycznej (tj aeiou.).
Wreszcie chce usunąć kolejne wystąpienia tych samych liter.
Przykład
Wejście - Stackexchange.com Bob Williams 0894 Wyjście - 08qraicvafyecugjigyoq94 $$$.
Objaśnienie:
Szablon hasła to [birth-date][domain-name][lastname][birth-year][symbol], ponieważ długość nazwy domeny stackexchangejest liczbą pierwszą. Symbol będzie taki, $$$jaki jest typ domeny .com.
Wypełnijmy te wartości w szablonie - 08stackexchangewilliams94$$$. Teraz szyfr Cezara musi być uruchamiany na polach [firstname][domain-name][lastname](w tym przypadku jest to tylko nazwisko). Kierunek zmiany jest właściwy, ponieważ l jest liczbą pierwszą, a wartość przesunięcia wynosi 08+94 = 102.
A więc 08stackexchangewilliams94$$$zamienia się w 08qryaicvafylecugjjgykq94$$$. Teraz co trzecia z kolei spółgłoska jest zastępowana samogłoską - 08qraaicvafyeecugjigyoq94$$$ usuwane są wszystkie kolejne litery tej samej litery - 08qraicvafyecugjigyoq94$$$. Nie martw się, to wymawia Bob.
dodatkowe informacje
- Adres domeny, imię i nazwisko zawierają tylko małe litery.
- Adres domeny zawsze będzie składał się tylko z domeny drugiego poziomu i najwyższego poziomu, podobnie jak
stackexchange.comi niecodegolf.stackexchange.com. Domeny takie jak.co.uknie są dozwolone, ale są prawidłowe.uklub.inprawidłowe. - Wymiana samogłoski w kolejności alfabetycznej odbywa się cyklicznie. Mam na myśli po
u,asłuży do zastąpienia. - Zakres ASCII dla szyfru Cezara wynosi 97 - 122 włącznie.
- Możesz pobrać dane zgodnie z opisem tutaj .
- Dane wyjściowe muszą być ciągiem.
- Format daty i roku urodzenia to
ddiyy.Więc02jest akceptowalny i2nie jest.
To jest golf golfowy, więc wygrywa najkrótszy kod w bajtach. Wesołego golfa!
0894składa się 102z wyjaśnień 08+96=106. Zaszyfrowany tekst wydaje się używać 102wartości. Po prostu niewielka niespójność, która może być myląca ...
defualtnie default
stackexchange.comnieimg.stackexchange.com? Co z domenami krajowymibbc.co.uk?