【C语言刷力扣】1832.判断句子是否为全字母句

题目:

法一

复制代码
bool checkIfPangram(char* sentence) {
    int str[256];
    memset(str, 0, sizeof(int));
    for (int i = 0; i < strlen(sentence); ++i) {
        ++str[ sentence[i] ];
    }

    for (int j = 'a'; j <= 'z'; ++j) {
        if (!str[j]) return false;
    }
    return true;
}

法二 动态分配

复制代码
typedef struct {
    char word;
    int count;
    UT_hash_handle hh;
} hashEntry;

bool checkIfPangram(char* sentence) {
    hashEntry * cnt = NULL;
    for (int i = 0; i < strlen(sentence); i++) {
        hashEntry* pEntry = NULL;
        HASH_FIND(hh, cnt, &sentence[i], sizeof(char), pEntry);
        if (pEntry == NULL) {
            hashEntry * pEntry = (hashEntry*)malloc(sizeof(hashEntry));
            pEntry -> word = sentence[i];
            pEntry -> count = 1;
            HASH_ADD(hh, cnt, word, sizeof(char), pEntry);
        }
        else pEntry -> count++;
    }

    hashEntry *curr = NULL, *next = NULL;
    int num = 26;
    HASH_ITER(hh, cnt, curr, next)
    {
        if (curr -> count > 0) {
            num--;
        }
        if (num == 0) return true;
        free(curr);
    }
    return false;
}
相关推荐
天选之女wow2 分钟前
【代码随想录算法训练营——Day6(Day5周日休息)】哈希表——242.有效的字母异位词、349.两个数组的交集、202.快乐数、1.两数之和
数据结构·算法·leetcode·散列表
寒冬没有雪4 分钟前
利用归并算法对链表进行排序
c++·算法
CoovallyAIHub5 分钟前
AI帮你打标签!这个开源神器让数据标注快了90%
深度学习·算法·计算机视觉
古译汉书5 分钟前
蓝桥杯算法之基础知识(7)---排序题的快排和归并排序
算法
薛定谔的算法10 分钟前
JavaScript队列实现详解:从基础到性能优化
javascript·数据结构·算法
pan0c2311 分钟前
机器学习 之 时间序列预测 的 电力负荷预测案例
人工智能·算法·机器学习
bug_kada30 分钟前
DOM树的深度与广度优先遍历
算法
bug_kada31 分钟前
面试官:如何解析URL参数?
算法
PineappleCoder31 分钟前
面试官你好,请您听我“编解”!!!
前端·算法·面试
我想吃烤肉肉32 分钟前
leetcode-python-2154将找到的值乘以 2
python·算法·leetcode