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 ke duas strings se t, devemos converter a sequência de se deixá-la igualmente a tainda 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 sque são happy e logo após inserir + 4 formando ranke igualando a sequência de arrays entre se 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 tquebraremos a iteração e continuamos o próximo passo.
Depois criamos mais uma variável chamadada zque representa a soma do comprimento de se t menos o index atual multiplicado por 2. Se o kque 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)