C语言 | Leetcode C语言题解之第205题同构字符串

题目:

题解:

cpp 复制代码
struct HashTable {
    char key;
    char val;
    UT_hash_handle hh;
};

bool isIsomorphic(char* s, char* t) {
    struct HashTable* s2t = NULL;
    struct HashTable* t2s = NULL;
    int len = strlen(s);
    for (int i = 0; i < len; ++i) {
        char x = s[i], y = t[i];
        struct HashTable *tmp1, *tmp2;
        HASH_FIND(hh, s2t, &x, sizeof(char), tmp1);
        HASH_FIND(hh, t2s, &y, sizeof(char), tmp2);
        if (tmp1 != NULL) {
            if (tmp1->val != y) {
                return false;
            }
        } else {
            tmp1 = malloc(sizeof(struct HashTable));
            tmp1->key = x;
            tmp1->val = y;
            HASH_ADD(hh, s2t, key, sizeof(char), tmp1);
        }
        if (tmp2 != NULL) {
            if (tmp2->val != x) {
                return false;
            }
        } else {
            tmp2 = malloc(sizeof(struct HashTable));
            tmp2->key = y;
            tmp2->val = x;
            HASH_ADD(hh, t2s, key, sizeof(char), tmp2);
        }
    }
    return true;
}
相关推荐
liebe1*112 分钟前
C语言程序代码(四)
c语言·数据结构·算法
夏鹏今天学习了吗1 小时前
【LeetCode热题100(56/100)】组合总和
算法·leetcode·职场和发展
chao1898442 小时前
C 文件操作全解速览
服务器·c语言·c#
微笑尅乐2 小时前
三种方法解开——力扣3370.仅含置位位的最小整数
python·算法·leetcode
青光键主2 小时前
C语言内功强化之const修饰指针
c语言·开发语言
hazy1k4 小时前
51单片机基础-TFT LCD 显示(ILI9341,SPI 4线)
c语言·stm32·单片机·嵌入式硬件·51单片机
奔跑吧邓邓子5 小时前
【C语言实战(63)】从0到1:51单片机GPIO控制实战秘籍
c语言·51单片机·开发实战·gpio控制实战
向前阿、7 小时前
数据结构从基础到实战——排序
c语言·开发语言·数据结构·程序人生·算法
Doro再努力7 小时前
数据结构04:链表的概念及实现单链表
c语言·数据结构
矮油0_o7 小时前
15.套接字和标准I/O
服务器·c语言·网络·网络编程·socket