Codificación: compruebe si dos cadenas son anagramas en Javascript
Introducción: un anagrama es una palabra o frase formada al reorganizar las letras de una palabra o frase diferente, generalmente usando todas las letras originales exactamente una vez. Por ejemplo, "act" y "cat" son anagramas entre sí. Un anagrama no tiene que tener el mismo significado que la palabra o frase original.
Solución1:
En este artículo, discutiremos un método eficiente para la detección de anagramas usando JavaScript.
El primer paso en nuestra función es eliminar los espacios y convertir ambas cadenas a letras minúsculas. Esto se hace usando el método replace para eliminar todos los espacios en la cadena y el método toLowerCase para convertir todos los caracteres a 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 es una forma simple y eficiente de buscar anagramas usando JavaScript. Al eliminar espacios y convertir las cadenas a letras minúsculas, comparar las longitudes y clasificar los caracteres en ambas cadenas, podemos verificar si las dos cadenas son anagramas entre sí o no.
Solución 2:
El primer paso en nuestra función es verificar si la longitud de ambas cadenas es igual o no. Si las longitudes no son iguales, podemos devolver falso ya que las dos cadenas no pueden ser anagramas entre sí.
A continuación, eliminamos los espacios y convertimos ambas cadenas en letras minúsculas, de modo que podamos comparar las letras independientemente de las mayúsculas y los espacios.
Creamos un objeto de contador para realizar un seguimiento del número de ocurrencias de cada letra en str1. Iteramos a través de str1 y para cada letra, incrementamos el conteo de esa letra en el objeto contador.
A continuación, iteramos a través de str2 y verificamos si la letra existe en el objeto contador. Si no es así, devolvemos falso ya que las dos cadenas no pueden ser anagramas.
Finalmente, devolvemos verdadero, si todas las letras en str2 también existen en str1 y el conteo de cada letra es igual en ambas cadenas.
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 es una forma eficiente de verificar anagramas usando javascript, primero comparando las longitudes de las dos cadenas y luego usando un objeto de contador para realizar un seguimiento del número de ocurrencias de cada letra en str1, y luego comparándolo con las letras en str2 podemos verificar si las dos cadenas son anagramas entre sí o no.
Si está interesado en aprender más sobre la codificación en Javascript, asegúrese de seguirme para obtener más fragmentos de código y ejemplos. Estaré compartiendo información valiosa y consejos sobre cómo dominar el lenguaje y mejorar tus habilidades como desarrollador. Entonces, estén atentos para más actualizaciones y sigamos aprendiendo juntos.
Gracias por leer. Feliz aprendizaje
Apoya nuestra publicación siguiéndola
Integración de Splunk con SpringBoot Parte — 1 Por qué Java es el lenguaje de programación más querido del planeta Codificación: encontrar la palabra más larga en una oración usando JavaScript
![¿Qué es una lista vinculada, de todos modos? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































