História
Preciso me lembrar de muitas senhas e não quero usar a mesma para vários sites, então criei uma regra, mas a regra não deve ser transparente, então o que faço é:
- Pense em uma palavra longa ou conceito como
breadpudding
. - Substitua a primeira letra pelo site em que estamos fazendo login. Se estamos logando
google
, nossa palavra se tornagreadpudding
. - Faça a primeira letra maiúscula.
- Mude a segunda letra para um
@
sinal. - Se a senha começar com uma não consoante, adicione um determinado número (como
1234
); caso contrário, adicione outro número (como4321
).
Ta da, agora você tem uma senha adequada.
Embora esse processo seja árduo, preciso de um programa para gerar isso para mim com base no seguinte:
Problema
Dados fornecidos:
a
: a palavra inicial, que é uma sequência e é sempre em minúscula, com garantia de mais de três caracteres.b
: o site no qual estamos efetuando login, que é uma string e sempre está em minúscula e é garantido que não está vazio.c
: o número de não consoantes, que é um número inteiro positivo que pode ter zeros à esquerda.d
: o número de consoantes, que é um número inteiro positivo que pode ter zeros à esquerda.
Saída uma string com base nos critérios acima.
Casos de teste
Entrada a="volvo", b="gmail", c=5555, d="0001"
G@lvo0001
Entrada a="sherlock", b="9gag", c=31415926535, d=3
9@erlock31415926535
Entrada a="flourishing", b="+google", c=11111, d=2222
+@ourishing11111
Regras
y
é uma consoante.- Se você decidir
c
oud
for um número inteiro, poderá analisá-lo como tal e os zeros à esquerda podem ser ignorados (0091
tratados como91
). - Espaço em branco e novas linhas à direita são permitidos.
- Você pode enviar o resultado para STDOUT ou retornar o resultado em uma função.
- Caracteres permitidos em
a
eb
são[a-z0-9!@#$%^&*()_+=-]
. - Você pode aceitar as 4 entradas em qualquer ordem consistente.
Isso é código-golfe . O menor código em bytes vence.