[LeetCode] Substrings of Size Three with Distinct Characters

아르당·2026년 7월 14일

LeetCode

목록 보기
402/581
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

반복된 문자가 없다면 좋은 문자열이다.
문자열 s가 주어졌을때, s에서 길이가 3인 좋은 부분 문자열의 수를 반환해라.
같은 부분 문자열이 나타나는 경우, 모든 경우를 계산해야한다.
부분 문자열은 문자열에서 연속된 문자들의 순서이다.

Example

#1
Input: s = "xyzzaz"
Output: 1
Explanation: 사이즈가 3인 4개의 부분 문자열 "xyz", "yzz", "zza", "zaz"가 있다. 오직 길이가 3인 좋은 부분 문자열은 "xyz"이다.

#2
Input: s = "aababcabc"
Output: 4
Explanation: 사이즈가 3인 7개의 부분 문자열 "aab", "aba", "bab", "abc", "bca", "cab", abc"이 있다. 좋은 부분 문자열은 "abc", "bca", "cab", "abc"이다.

Constraints

  • 1 <= s.length <= 100
  • s는 영어 소문자로 구성된다.

Solved

class Solution {
    public int countGoodSubstrings(String s) {
        if(s.length() <= 2){
            return 0;
        }

        int result = 0;

        for(int i = 0; i < s.length() - 2; i++){
            if(
                s.charAt(i) != s.charAt(i + 1) &&
                s.charAt(i + 1) != s.charAt(i + 2) &&
                s.charAt(i + 2) != s.charAt(i)
            ){
                result++;
            }
        }

        return result;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글