소개
Bob은 자신이 사용하는 웹 사이트마다 다른 비밀번호를 사용하는 것을 좋아합니다. 그는 기억하기 위해 특별한 형식의 암호를 원합니다. 코드 길이가 가능한 짧은 암호 생성기를 작성하여 그를 도와주세요. 왜냐하면 그의 이름처럼 물건을 짧게 유지하는 것을 좋아하기 때문입니다.
도전
Bob에게 네 가지 매개 변수를 사용하는 비밀번호 생성기를 빌드하십시오.
- 도메인 주소 (예 : stackexchange.com)
- 이름,
- 성,
- 생년월일.
다음 변환을 거친 문자열을 출력합니다.
모든 비밀번호에는 도메인 이름 의 길이 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$$$. 그것이 Bob에게 발음하기 쉽다는 것을 걱정하지 마십시오.
추가 정보
- 도메인 주소, 이름 및 성은 소문자 알파벳 만 포함합니다.
- 도메인 주소는 항상
stackexchange.com그렇지 않은 두 번째 및 최상위 도메인으로 만 구성됩니다codegolf.stackexchange.com. 또한 같은 도메인.co.uk은 허용되지 않지만 정당.uk하거나.in유효합니다. - 알파벳 순서로 모음을 교체하는 것은 주기적입니다. 이후 내 말은
u,a대체하는 데 사용됩니다. - Caesar 암호의 ASCII 범위는 97-122입니다.
- 여기에 설명 된대로 입력 할 수 있습니다 .
- 출력은 문자열이어야합니다.
- 생년월일 년의 형식은 다음
dd과yy낭포는02허용하고2이 아니다.
이것은 코드 골프이므로 바이트 단위의 가장 짧은 코드가 이깁니다. 행복한 골프!
0894합쳐 102지지만 설명은를 사용합니다 08+96=106. 암호화 된 텍스트가 102값 을 사용하는 것으로 보입니다 . 혼란 스러울 수있는 약간의 불일치 ...
defualt하지 않았다default
stackexchange.com하지img.stackexchange.com? 국가 도메인은bbc.co.uk어떻습니까?