Codificação: verifique se duas strings são anagramas em Javascript
Introdução: Um anagrama é uma palavra ou frase formada pelo rearranjo das letras de uma palavra ou frase diferente, geralmente usando todas as letras originais exatamente uma vez. Por exemplo, “act” e “cat” são anagramas um do outro. Um anagrama não precisa ter o mesmo significado que a palavra ou frase original.
Solução1:
Neste artigo, discutiremos um método eficiente para detecção de anagramas usando JavaScript.
A primeira etapa em nossa função é remover todos os espaços e converter ambas as strings em letras minúsculas. Isso é feito usando o método replace para remover todos os espaços na string e o método toLowerCase para converter todos os caracteres em minúsculas.
str1 = str1.replace(/\s/g, '').toLowerCase()
str2 = str2.replace(/\s/g, '').toLowerCase()
if (str1.length !== str2.length) {
return false
}
str1 = str1.split('').sort().join('')
str2 = str2.split('').sort().join('')
return str1 === str2
function isAnagram(str1, str2) {
// Removes spaces and convert into the lowercase letter
str1 = str1.replace(/\s/g, '').toLowerCase()
str2 = str2.replace(/\s/g, '').toLowerCase()
// console.log(str1, str2)
if (str1.length !== str2.length) {
return false
}
// Sort the characters in the given string
str1 = str1.split('').sort().join('')
str2 = str2.split('').sort().join('')
// Compare the sorted String
return str1 === str2
}
const check = isAnagram('modi', 'monu')
console.log(check) // False
const check = isAnagram('modi', 'monu')
console.log(check)
Esta é uma maneira simples e eficiente de verificar anagramas usando JavaScript. Removendo espaços e convertendo as strings em letras minúsculas, comparando os comprimentos e classificando os caracteres em ambas as strings, podemos verificar se as duas strings são anagramas uma da outra ou não.
Solução 2:
O primeiro passo em nossa função é verificar se o comprimento de ambas as strings é igual ou não. Se os comprimentos não forem iguais, podemos retornar false, pois as duas strings não podem ser anagramas uma da outra.
Em seguida, removemos os espaços e convertemos ambas as strings em letras minúsculas, para que possamos comparar as letras independentemente de maiúsculas e minúsculas e espaços.
Criamos um objeto contador para acompanhar o número de ocorrências de cada letra em str1. Nós iteramos por str1 e para cada letra, incrementamos a contagem dessa letra no objeto contador.
Em seguida, iteramos por str2 e verificamos se a letra existe no objeto contador. Caso contrário, retornamos false, pois as duas strings não podem ser anagramas.
Por fim, retornamos true se todas as letras em str2 também existirem em str1 e a contagem de cada letra for igual em ambas as strings.
Código completo:
function isAnagram(str1, str2) {
if (str1.length !== str2.length) {
return false
}
str1 = str1.replace(/\s/g, '').toLowerCase()
str2 = str2.replace(/\s/g, '').toLowerCase()
let counter = {}
for (let letters of str1) {
counter[letters] = counter[letters] ? counter[letters] + 1 : 1
}
for (let items of str2) {
if (!counter[items]) {
return false
}
counter[items] -= 1
}
return true
}
let str1 = 'I am Monu'
let str2 = 'am I OnMU'
const checkAnagram = isAnagram(str1, str2)
console.log(checkAnagram)
let str1 = 'I am Monu'
let str2 = 'am I OnMU'
const checkAnagram = isAnagram(str1, str2)
console.log(checkAnagram)
Esta é uma maneira eficiente de verificar anagramas usando javascript, primeiro comparando os comprimentos das duas strings e, em seguida, usando um objeto contador para acompanhar o número de ocorrências de cada letra em str1 e, em seguida, comparando-o com as letras em str2 podemos verificar se as duas strings são anagramas uma da outra ou não.
Se você estiver interessado em aprender mais sobre codificação em Javascript, siga-me para mais exemplos e trechos de código. Estarei compartilhando informações valiosas e dicas de como dominar o idioma e aprimorar suas habilidades como desenvolvedor. Portanto, fique atento para mais atualizações e vamos continuar aprendendo juntos.
Obrigado por ler. Bom aprendizado
Apoie nossa publicação seguindo-a
Integração do Splunk com SpringBoot Parte — 1 Por que Java é a linguagem de programação mais amada do planeta Codificação: encontrando a palavra mais longa em uma frase usando JavaScript




































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)