[LeetCode] Find Common Characters

준규·2023년 3월 20일
0

1.문제


Given a string array words, return an array of all characters that show up in all strings within the words (including duplicates). You may return the answer in any order.


문자열 배열 words가 주어질 때 words의 모든단어에 포함되는 character의 배열을 리턴하는 문제이다. (중복 가능)


Example 1

Input: words = ["bella","label","roller"]
Output: ["e","l","l"]

Example 2

Input: words = ["cool","lock","cook"]
Output: ["c","o"]

Constraints:

  • 1 <= words.length <= 100
  • 1 <= words[i].length <= 100
  • words[i] consists of lowercase English letters.

2.풀이

  1. 하나의 word의 문자들을 가지고 순회를 돈다
  2. 모든 단어가 char을 가지는지 체크한다.
  3. 만약 모든 단어가 char을 가진다면 result에 push하고 모든 단어에서 char을 빼준다.

/**
 * @param {string[]} words
 * @return {string[]}
 */
const commonChars = function (words) {
  // words의 첫번째 단어를 배열로 만든다
  const firstWord = words.shift().split("");
  const result = [];

  // 첫번째 단어의 모든 문자들을 순회한다.
  firstWord.forEach((char) => {
    // 만약 words의 모든 단어가 char을 포함하고 있으면
    if (words.every((word) => word.includes(char))) {
      result.push(char); //result에 char을 push하고
      words = words.map((word) => word.replace(char, "")); // words의 모든 단어들에서 char을 빼준다.
    }
  });

  return result;
};

3.결과

profile
안녕하세요 :)

0개의 댓글