Reverter uma string em JavaScript
- Reverter uma string usando funções integradas em JavaScript
- Reverter uma string usando recursão em JavaScript
Existem várias maneiras de reverter uma string em JavaScript no local, sem usar nenhum espaço adicional. A vantagem disso é que você pode escrever um programa com O(1)
complexidade de espaço. Isso significa que você não precisa de nenhum espaço extra na memória para armazenar os dados. Você só usa o mesmo espaço fornecido para nós, ou seja, o tamanho da entrada, e inverte a string fornecida dentro desse espaço.
Abaixo estão algumas das maneiras pelas quais você pode reverter uma string em JavaScript.
Reverter uma string usando funções integradas em JavaScript
Vamos ver como reverter uma string no local com a ajuda de funções integradas disponíveis em JavaScript. Existem 3 funções com as quais você pode fazer isso e aquelas funções - split()
, reverse()
e join()
.
Abaixo está o que cada uma das três funções fará.
split()
irá separar cada caractere de uma string e convertê-lo em um array.reverse()
pegará aquele array e inverterá os elementos dentro dele.join()
unirá os caracteres que foram revertidos pela funçãoreverse()
.
function reverse(s) {
return s.split('').reverse().join('');
}
var sss = reverse('adam')
console.log(sss)
Resultado:
mada
Para reverter uma string, você primeiro deve aplicar a função split()
na string de entrada. Esta função converte a string em um objeto que contém todos os caracteres dessa string. Depois disso, você pode usar a função JavaScript integrada reverse()
para reverter uma string. Esta função não funciona diretamente com as strings, então você deve primeiro converter a string em um objeto usando a função split()
.
Agora você tem um objeto dentro do qual todos os caracteres estão em ordem inversa. Para converter este objeto de volta em uma string, você pode usar a função join()
. Esta função pegará cada caractere da string e os unirá para formar uma string.
Reverter uma string usando recursão em JavaScript
Outra maneira de reverter uma string é usar recursão. Aqui, você criou uma função chamada reverse()
, que leva str
como argumento. Ao escrever uma função recursiva, primeiro você deve certificar-se de adicionar uma condição de base. Uma condição básica nos permite encerrar um programa recursivo durante a execução. Se não houver nenhuma condição básica no programa, ele será executado infinitamente, o que não queremos. É por isso que você precisa verificar se a string que o usuário está passando para esta função está vazia ou não. Se estiver vazio, você encerrará o programa; caso contrário, você executará chamadas recursivas.
function reverse(str) {
if (str === '') {
return '';
} else {
return reverse(str.substr(1)) + str.charAt(0);
}
}
let reverseStringIs = reverse('adam')
console.log(reverseStringIs)
Resultado
mada
Na parte else
, temos apenas uma linha de código. Além disso, você pode pensar que dividiu essa linha de código em 2 partes (isso é apenas para supor, para que você possa entender o código). A primeira parte é reverse(str.subset(1))
e a segunda parte é str.charAt(0)
.
A primeira parte pega todo o adam
e pega seu subconjunto a partir do índice no. 1 ou seja, dam
porque d
está na primeira posição. E a segunda parte pega a string inteira, ou seja, adam
, e obtém o caractere no índice 0, ou seja, a
.
Realizamos uma chamada de recursão e então passamos esta substring para a função reverse()
, ou seja, dam
e não adam
, uma vez que você já criou uma substring a partir da string original. Agora, ao executar a parte else
, você terá dam
como string de entrada. Você criará uma substring desta string usando a função substr()
começando no índice 1. E a substring será am
, e o str.charAt(0)
nos dará o caractere no índice 0 e ie d
.
Este processo continua até que toda a string fique vazia. Neste ponto, é assim que nossa pilha se parecerá.
Esta é a sequência em que os caracteres serão retornados da pilha - m, a, d, a
. Assim que a string ficar vazia, o programa começará a retirar os elementos um a um da pilha e você obterá a string final na ordem reversa, madam
, como saída.
Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.
LinkedIn