DEV Community

Altencir Junior
Altencir Junior

Posted on

Resolvendo problemas no HackerRank: Anexando e Excluindo strings;

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
Enter fullscreen mode Exit fullscreen mode

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';
}
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Assim, concluímos mais um Resolvendo problemas no HackerRank: até a próxima.

Latest comments (0)