Olá, seja bem vindo a mais um Resolvendo problemas no HackerRank: No caso de hoje, vamos adicionar e retirar letras dentro de um arrays sendo elas strings. Vejamos agora uma explicação detalhada e vejamos a resolução.
Append and Delete -
Nós temos duas sequências de letras minúsculas em inglês(as letras servem para português, são de nosso alfabeto). Você pode realizar dois tipos de operações na primeira string:
Acrescente uma letra minúscula do inglês ao final da string.
Exclua o último caractere da string. Executar esta operação em uma string vazia resulta em uma string vazia.
Dado um inteiro k
e duas strings s
e t
, devemos converter a sequência de s
e deixá-la igualmente a t
ainda seguinto o número de movimentações descritas por k
.
- string s: a string inicial
- string t: a string desejada
- int k: o número exato de operações que devem ser realizadas
Vejamos um exemplo que ajude a entender o que se pede:
hackerhappy //s
hackerrank // t
9 // k
Nós vamos retirar as 5 últimas letras de s
que são happy
e logo após inserir + 4 formando rank
e igualando a sequência de arrays entre s
e t
.
Compreendendo o funcionamento e sua lógica,vejamos agora como executar esse código:
function appendAndDelete(s, t, k) {
// Write your code here
for(var i = 0; i < s.length; i++) {
if (s[i] !== t[i]) break;
};
let z = (s.length + t.length) - (i * 2);
if (k >= s.length + t.length) return 'Yes'
else if (z % 2 === k % 2 && z <= k) return 'Yes';
else return 'No';
}
A função se inicia com os parâmetros (s,t e k) que tem os respectivos valores anteriormente revelados. Criamos uma iteração do index i
, onde irá percorrer o comprimento do array de strings s
enquanto ele for menor que ele. E se o index de s
for diferente do index de t
quebraremos a iteração e continuamos o próximo passo.
Depois criamos mais uma variável chamadada z
que representa a soma do comprimento de s
e t
menos o index atual multiplicado por 2. Se o k
que representa o número de ações a serem feitas for maior ou igual ao comprimento de s
e t
, retornaremos o string "YES". E se o restante de z
for idêntico ao restante de k
e z
for menor ou igual a k
, também retornaremos uma string "YES". Caso contrário as situações anteriomente ditas, o retorno será uma string "NO".
Vejamos o resultado a seguir:
hackerhappy
hackerrank
9
input de resposta = YES
Assim, concluímos mais um Resolvendo problemas no HackerRank: até a próxima.
Top comments (0)