Leetcode算法题(C语言)16--有效的字母异位词

题目:有效的字母异位词

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。

示例 1:

输入: s = “anagram”, t = “nagaram”
输出: true

示例 2:

输入: s = “rat”, t = “car”
输出: false

说明:
你可以假设字符串只包含小写字母。

代码实现:

bool isAnagram(char* s, char* t) {
    int * s_buffer;
    int * t_buffer;
    int s_len;
    int t_len;
    
    /* 分配空间 */
    s_buffer = (int *)malloc(sizeof(int) * 256);
    t_buffer = (int *)malloc(sizeof(int) * 256);
    memset(s_buffer, 0, sizeof(int) * 256);
    memset(t_buffer, 0, sizeof(int) * 256);
    
    /* 两个字符串大小不一致,返回false */
    s_len = strlen(s);
    t_len = strlen(t);
    if(s_len != t_len)
        return false;
    
    /* 计算字符串1中各个字符的数目 */
    for(int i = 0; i < s_len; i++)
    {
        s_buffer[s[i]]++;
    }
    /* 计算字符串2中各个字符的数目 */
    for(int i = 0; i < t_len; i++)
    {
        t_buffer[t[i]]++;
    }
    /* 判断两个字符串中字符是否一致 */
    for(int i = 0; i < 256; i++)
    {
        if((s_buffer[i] != t_buffer[i]))
            return false;
    }
    return true;
}

你可能感兴趣的:(Leetcode算法题)