한 번 발생하는 일반적인 단어 계산

7950 단어 javascriptleetcode
`두 개의 문자열 배열 words1 및 words2가 주어지면 두 배열 각각에 정확히 한 번씩 나타나는 문자열의 수를 반환합니다.

입력: words1 = ["leetcode","is","놀랍다","as","is"], words2 = ["놀랍다","leetcode","is"]
출력: 2
설명:
  • "leetcode"는 두 배열 각각에 정확히 한 번씩 나타납니다. 이 문자열을 계산합니다.
  • "놀라움"은 두 배열 각각에 정확히 한 번씩 나타납니다. 이 문자열을 계산합니다.
  • "is"는 두 배열 각각에 나타나지만 words1에는 2번 나타납니다. 이 문자열은 계산하지 않습니다.
  • "as"는 words1에는 한 번 나타나지만 words2에는 나타나지 않습니다. 이 문자열은 계산하지 않습니다.
    따라서 두 배열 각각에 정확히 한 번씩 나타나는 두 개의 문자열이 있습니다.
    `

  • /**
     * @param {string[]} words1
     * @param {string[]} words2
     * @return {number}
     */
    var countWords = function (words1, words2) {
      let mapW1 = new Map();
      let mapW2 = new Map();
    
      for (let i = 0; i < words1.length; i++) {
        if (mapW1.has(words1[i])) {
          mapW1.set(words1[i], mapW1.get(words1[i] + 1));
        } else {
          mapW1.set(words1[i], 1);
        }
      }
    
      for (let i = 0; i < words2.length; i++) {
        if (mapW2.has(words2[i])) {
          mapW2.set(words2[i], mapW2.get(words2[i] + 1));
        } else {
          mapW2.set(words2[i], 1);
        }
      }
      let count = 0;
    
      for (let i = 0; i < words1.length; i++) {
        console.log(words1[i]);
        if (
          mapW1.has(words1[i]) &&
          mapW2.has(words1[i]) &&
          mapW1.get(words1[i]) === 1 &&
          mapW2.get(words1[i]) === 1
        ) {
          count++;
        }
      }
      return count;
    };
    
    console.log(
      countWords(
        ["leetcode", "is", "amazing", "as", "is"],
        ["amazing", "leetcode", "is"]
      )
    );
    
    

    좋은 웹페이지 즐겨찾기