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;
}
相关推荐
Byte Wizard29 分钟前
C语言编译与链接
c语言
人道领域1 小时前
【LeetCode刷题日记】90.子集Ⅱ--- 归纳题解
java·开发语言·leetcode
社交怪人1 小时前
【判断整除】信息学奥赛一本通C语言解法(题号1046)
c语言
tianyuanwo1 小时前
C语言编译完全指南:从工具链到跨架构静态与动态编译
c语言·动态编译·静态编译
小欣加油1 小时前
leetcode121买卖股票的最佳时机
数据结构·c++·算法·leetcode·职场和发展
韭菜钟1 小时前
将vscode的数据从C盘迁移至D盘
c语言·ide·vscode
2601_961845152 小时前
2026四级作文预测题|英语四级写作押题+提纲PDF
java·c语言·数据库·c++·python·pdf·php
十月的皮皮2 小时前
C语言学习笔记20260609-字符串反转两种实现方法
c语言·笔记·学习
CodeSheep程序羊2 小时前
宇树科技,即将上市!
java·c语言·c++·人工智能·python·科技·硬件工程
HZ·湘怡3 小时前
数据结构之排序算法 (1)--插入排序
c语言·数据结构·算法·排序算法