Swimmer

[LeetCode] 1941. Check if All Characters Have Equal Number of Occurrences, C 본문

코딩 문제

[LeetCode] 1941. Check if All Characters Have Equal Number of Occurrences, C

Zach Choi 2022. 12. 31. 12:05

Solution

- Use Hash Map

- Compare Counting Number of each Character (except 0 occurence character)

 

#define NumOfLowerCaseEnglishLetter  26
#define ASCII_INIT_NUM_IDX           97


bool areOccurrencesEqual(char* s) {
    long int NumOfChar = 0;
    int RefNum = 0;
    int arr[NumOfLowerCaseEnglishLetter] = { 0 }; // consists of lowercase English letters
    bool RetVal = true;

    while (s[NumOfChar] != '\0')
    {
        ++arr[s[NumOfChar] - NumOfLowerCaseEnglishLetter];
        ++NumOfChar;
    }


    for (long int i = 0; i != NumOfLowerCaseEnglishLetter; ++i)
    {
        if (RefNum == 0 && arr[i] != 0)
        {
            RefNum = arr[i];
        }
        else if (RefNum != 0 && arr[i] != 0)
        {
            if (RefNum != arr[i])
            {
                RetVal = false;
            }
            else
            {
                // Do Nothing
            }
        }
    }

    return RetVal;
}
Comments