[LeetCode] Substrings of Size Three with Distinct Characters

준규·2022년 11월 27일
0

문자열에 중복되는 철자가 없다면 good이라고 한다.

문자열 s가 주어지고 s의 길이가 3인 부분 문자열 중 good인 문자열의 갯수를 리턴하는 문제이다.

Example을 보자

const countGoodSubstrings = function (s) {
  let count = 0;
  const length = s.length - 3;
  const sub = [];
  for (let i = 0; i <= length; i++) {
    sub.push(s.substr(i, 3));
  }

  sub.forEach((sub) => {
    const temp = [...new Set(sub)];
    if (temp.length === sub.length) {
      count++;
    }
  });

  return count;
};

부분문자열의 길이는 3이므로 s의 길이에서 3을 뺀 만큼만 for문을 돌면서 부분문자열을 만들어서 sub라는 배열에 넣어주었다.

그 다음 sub안의 각 부분 문자열을 set을 이용해서 중복이 없는 문자열로 만들어주었다.

만약 여기서 부분문자열에 중복이 없다면 원래의 부분 문자열의 길이와 set을 이용해 중복을 없앤 문자열의 길이가 같을 것이고

중복이 있다면 길이가 다를것이다.

길이가 같을 때만 체크를 해서 count 값을 증가시켜주고 return 해주었다.

submit을 해보니

정답이었다!

profile
안녕하세요 :)

0개의 댓글