【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;
}
相关推荐
Oueii2 分钟前
分布式系统监控工具
开发语言·c++·算法
xushichao198928 分钟前
C++中的中介者模式
开发语言·c++·算法
MORE_7731 分钟前
leecode100-买卖股票的最佳时期-贪心算法
python·算法·贪心算法
AI科技星34 分钟前
基于wr/c + h/c = 1的螺旋线矢量特性及应用分析
c语言·开发语言·人工智能·opencv·算法·计算机视觉·r语言
颜酱37 分钟前
回溯算法专项突破练习(1)
javascript·后端·算法
进击的荆棘1 小时前
优选算法——分治
数据结构·算法·leetcode·分治
是娇娇公主~1 小时前
C++ 多态机制与虚函数实现原理(补充)
c语言·c++
Yupureki1 小时前
《实战项目-个人在线OJ平台》1.项目简介和演示
c语言·数据结构·c++·sql·算法·性能优化·html5
m0_579393661 小时前
C++代码混淆与保护
开发语言·c++·算法
qq_148115371 小时前
C++中的享元模式实战
开发语言·c++·算法