Giriş
Bob kullandığı her web sitesi için farklı şifreler bulmayı sever. Hatırlayabilmesi için özel bir biçimde şifreler istiyor. Kod uzunluğunda olabildiğince kısa bir şifre üreticisi oluşturarak ona yardımcı olun, çünkü şeyleri adı gibi kısa tutmayı seviyor.
Meydan okuma
Bob'a dört parametre alan bir şifre üreticisi oluşturun.
- Alan adresi, (ör: stackexchange.com)
- İsim,
- Soyadı,
- Doğum tarihi ve yılı.
ve aşağıdaki dönüşümlerden geçmiş bir dize çıktılar.
Her parolanın etki alanı adının l uzunluğunu temel alan bir şablonu vardır . Eğer l asalsa, şablon bu formda olur -
[birth-date][domain-name][lastname][birth-year][symbol]
aksi halde bu formdadır -
[symbol][birth-year][firstname][domain-name][birth-date].
Sembol alanı, alan türüne göre değerlere sahip olacaktır.
.com -> $$$ .org -> &&& .net -> %%% .edu -> +++ .gov -> @@@ .mil -> >>> varsayılan -> ~~~
Şimdi, aynı zamanda tarlalar üzerinde bir sezar şifresi çalıştırmak istiyor - [firstname][domain-name][lastname]. L başka bir şey kaldıysa kaydırma yönü doğru . Vardiya değeri doğum tarihi ve yılı ilavesiyle belirlenir.
Yukarıdaki işlemden sonra, metin kolayca hatırlanamaz, böylece şifrelenen metnin belirgin olmasını ister. Bunu yapmak için her üç ardışık ünsüzü alfabetik sırayla bir sesli harfle değiştirmek istiyor (yani aeiou).
Son olarak, aynı harflerin ardışık tekrarlarını silmek istiyor.
Misal
Giriş - stackexchange.com bob williams 0894 Çıktı - 08qraicvafyecugjigyoq94 $$$.
Açıklama:
Parola şablonu [birth-date][domain-name][lastname][birth-year][symbol], çünkü etki alanı adının uzunluğu stackexchangeasaldır. Sembol, $$$alan türü gibi olacaktır .com.
Şablondaki bu değerleri dolduralım - 08stackexchangewilliams94$$$. Şimdi sezar şifresinin tarlalarda çalıştırılması gerekiyor [firstname][domain-name][lastname](bu durumda sadece soyadı). Vites yönü doğru çünkü l asal ve kaydırma değeri 08+94 = 102.
Böylece, 08stackexchangewilliams94$$$dönüşür 08qryaicvafylecugjjgykq94$$$. Şimdi her üç ardışık ünsüz bir sesli harfle değiştirilir - 08qraaicvafyeecugjigyoq94$$$ aynı mektubun her ardışık okeyleri silinir - 08qraicvafyecugjigyoq94$$$. Merak etme Bob için belirgindir.
ilave bilgi
- Etki alanı adresi, ad ve soyadı yalnızca küçük harfli alfabe içerir.
- Alan adresi daima, sadece ikinci düzey ve üst düzey etki alanı oluşur gibi olacak
stackexchange.comdeğilcodegolf.stackexchange.com. Ayrıca, gibi alan adlarına.co.ukizin verilmez, yalnızca.ukveya.ingeçerlidir. - Sesli harfin alfabetik sırayla değiştirilmesi döngüseldir. Demek istediğim
u,ayerine kullanılır. - Sezar şifresi için ASCII aralığı 97-122 dahildir.
- Burada açıklandığı gibi girdi alabilirsiniz .
- Çıktı bir dize olmalıdır.
- Doğum tarihi ve yıl biçimidir
ddveyy.Peki02kabul edilebilir ve2değildir.
Bu kod golfüdür, bu nedenle bayttaki en kısa kod kazanır. Mutlu Golf!
0894kadar ekler 102ama açıklama kullanımları 08+96=106. Şifrelenmiş metin 102değeri kullanıyor gibi görünüyor . Kafa karıştırıcı olabilecek hafif bir tutarsızlık ...
defualtdeğildefault
stackexchange.com, değilimg.stackexchange.commi? Peki ülke alanları nasılbbc.co.uk?