코딩: Javascript에서 두 개의 문자열이 아나그램인지 확인
소개: 애너그램은 일반적으로 모든 원래 문자를 정확히 한 번만 사용하여 다른 단어나 구의 문자를 재배열하여 형성된 단어나 구입니다. 예를 들어, "act"와 "cat"은 서로의 애너그램입니다. 애너그램은 원래 단어나 구문과 동일한 의미를 가질 필요가 없습니다.
솔루션1 :
이 기사에서는 JavaScript를 사용하여 아나그램을 감지하는 효율적인 방법에 대해 설명합니다.
함수의 첫 번째 단계는 공백을 제거하고 두 문자열을 모두 소문자로 변환하는 것입니다. 이는 문자열의 모든 공백을 제거하는 replace 메소드와 모든 문자를 소문자로 변환하는 toLowerCase 메소드를 사용하여 수행됩니다.
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)
이것은 JavaScript를 사용하여 애너그램을 확인하는 간단하고 효율적인 방법입니다. 공백을 제거하고 문자열을 소문자로 변환하고 길이를 비교하고 두 문자열의 문자를 정렬하여 두 문자열이 서로의 애너그램인지 여부를 확인할 수 있습니다.
해결책 2:
함수의 첫 번째 단계는 두 문자열의 길이가 같은지 여부를 확인하는 것입니다. 길이가 같지 않으면 두 문자열이 서로의 애너그램이 될 수 없으므로 false를 반환할 수 있습니다.
다음으로 공백을 제거하고 두 문자열을 모두 소문자로 변환하여 대소문자와 공백에 관계없이 문자를 비교할 수 있습니다.
str1에서 각 문자의 발생 횟수를 추적하기 위해 카운터 개체를 만듭니다. str1을 반복하고 각 문자에 대해 카운터 객체에서 해당 문자의 수를 증가시킵니다.
다음으로 str2를 반복하고 카운터 개체에 문자가 있는지 확인합니다. 그렇지 않으면 두 문자열이 아나그램이 될 수 없으므로 false를 반환합니다.
마지막으로 str2의 모든 문자가 str1에도 존재하고 각 문자의 수가 두 문자열에서 동일하면 true를 반환합니다.
완전한 코드:
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)
이것은 먼저 두 문자열의 길이를 비교한 다음 카운터 객체를 사용하여 str1에서 각 문자의 발생 횟수를 추적한 다음 str2의 문자와 비교하여 javascript를 사용하여 애너그램을 확인하는 효율적인 방법입니다. 두 문자열이 서로의 애너그램인지 여부를 확인할 수 있습니다.
Javascript로 코딩하는 방법에 대해 자세히 알아보려면 저를 팔로우하여 더 많은 코드 스니펫과 예제를 확인하세요. 언어를 마스터하고 개발자로서의 기술을 향상시키는 방법에 대한 귀중한 정보와 팁을 공유하겠습니다. 계속해서 더 많은 업데이트를 확인하고 함께 학습을 계속해 봅시다.
읽어주셔서 감사합니다. 행복한 학습이 되세요
그것을 따라 우리 출판물을 지원하십시오
Splunk와 SpringBoot 통합 파트 — 1 Java가 지구상에서 가장 사랑받는 프로그래밍 언어인 이유 코딩: JavaScript를 사용하여 문장에서 가장 긴 단어 찾기
![연결된 목록이란 무엇입니까? [1 부]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































