넘치게 채우기

[LeetCode] 1684. Count the Number of Consistent Strings 본문

PS/LeetCode

[LeetCode] 1684. Count the Number of Consistent Strings

riveroverflow 2024. 9. 12. 11:15
728x90
반응형

 

https://leetcode.com/problems/count-the-number-of-consistent-strings/description/?envType=daily-question&envId=2024-09-12

leetcode - Count the Number of Consistent Strings

문제 유형 : 문자열 처리

문제 난이도 : Easy

 

문제

You are given a string allowed consisting of distinct characters and an array of strings words. A string is consistent if all characters in the string appear in the string allowed.

Return the number of consistent strings in the array words.

 

중복 없는 문자로만 구성된 allowed문자열과 문자열 배열 words가 주어진다.

문자열의 구성 문자들이 각각 allowed에 있다면, 일관된 문자열이라 한다.

일관된 문자열의 개수를 구하시오.

 

풀이

allowed를 순차적으로 순회하면서, 26짜리 길이의 배열에 각 알파벳의 허용여부를 저장한다.

words의 각각의 문자열에서 각각의 글자를 읽으면서, 배열에서 true인지 확인한다. 모두 true라면, 개수를 1 추가한다.

총 누적한 개수를 반환한다.

 

코드

C++

#pragma GCC optimize("03", "unroll-loops");
static const int __ = [](){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    return 0;
}();

class Solution {
public:
    int countConsistentStrings(string allowed, vector<string>& words) {
        vector<bool> table(26, false);

        for(char &ch : allowed) {
            table[ch - 'a'] = true;
        }

        int ans = 0;
        for(auto &word : words) {
            bool flag = true;
            for(auto &ch : word) {
                if(!table[ch - 'a']) {
                    flag = false;
                    break;
                }
            }
            if(flag) ans++;
        }
        return ans;
    }
};

 

Go

func countConsistentStrings(allowed string, words []string) int {
    table := make([]bool, 26)

    for _, v := range allowed {
        table[v - 'a'] = true
    }

    ans := 0
    for _, word := range words {
        flag := true
        for _, ch := range word {
            if !table[ch - 'a'] {
                flag = false
                break
            }
        }
        if flag {
            ans++
        }
    }

    return ans
}

 

728x90
반응형