코딩: Javascript에서 두 개의 문자열이 아나그램인지 확인

Jan 24 2023
소개: 애너그램은 일반적으로 모든 원래 문자를 정확히 한 번만 사용하여 다른 단어나 구의 문자를 재배열하여 형성된 단어나 구입니다. 예를 들어, "act"와 "cat"은 서로의 애너그램입니다.

소개: 애너그램은 일반적으로 모든 원래 문자를 정확히 한 번만 사용하여 다른 단어나 구의 문자를 재배열하여 형성된 단어나 구입니다. 예를 들어, "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를 사용하여 문장에서 가장 긴 단어 찾기