Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 고유한 단어의 최대 길이 곱

<시간/>

문제

문자열 배열(소문자 문자열 알파벳만)을 첫 번째이자 유일한 인수로 사용하는 JavaScript 함수를 작성해야 합니다.

함수는 공통 문자를 공유하지 않고 길이의 최대 곱을 갖는 배열에서 두 개의 문자열을 선택해야 합니다. 그런 다음 우리 함수는 그러한 두 문자열의 길이 곱을 반환해야 합니다. 배열에 그러한 문자열이 없으면 0을 반환해야 합니다.

예를 들어, 함수에 대한 입력이 -

인 경우
const arr = ["karl", "n", "the", "car", "mint", "alpha"];

그러면 출력은 다음과 같아야 합니다. -

const output = 20;

출력 설명:

단어 '민트'와 '알파'는 공통 단어를 공유하지 않으며 길이의 곱은 20입니다.

예시

이에 대한 코드는 -

const arr = ["karl", "n", "the", "car", "mint", "alpha"];
const maxLengthProduct = (arr = []) => {
   const array = [];
   arr.forEach(str => {
      let curr = 0;
      for(let i = 0; i < str.length; i++){
         curr |= 1<<(str.charCodeAt(i) - 97);
      };
      array.push(curr);
   });
   let res = 0;
   for(let i = 0 ; i < array.length; i++) {
      for(let j = i + 1; j < array.length ; j++) {
         if((array[i] & array[j]) === 0) {
            res = Math.max(res, arr[i].length * arr[j].length);
         }
      }
   }
   return res;
};
console.log(maxLengthProduct(arr));

출력

콘솔의 출력은 -

20