力扣(LeetCode)算法_C++——同构字符串

给定两个字符串 s 和 t ,判断它们是否是同构的。

如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。

每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。

示例 1:

输入:s = "egg", t = "add"

输出:true

示例 2:

输入:s = "foo", t = "bar"

输出:false

示例 3:

输入:s = "paper", t = "title"

输出:true

cpp 复制代码
bool isIsomorphic(string s, string t)
{
    unordered_map<char, char> f;
    unordered_map<char, char> g;
    int n = s.size();
    for (int i = 0; i < n; i++)
    {
        if (f.find(s[i]) != f.end() || g.find(t[i]) != g.end())
        {
            if (f[s[i]] != t[i] || g[t[i]] != s[i])
                return false;
        }
        else
        {
            f[s[i]] = t[i];
            g[t[i]] = s[i];
        }
    }
    return true;
}```

 
相关推荐
猫头虎10 小时前
Rust评测案例:Rust、Java、Python、Go、C++ 实现五大排序算法的执行时间效率比较(基于 OnlineGDB 平台)
java·开发语言·c++·python·golang·rust·排序算法
Learn Beyond Limits10 小时前
Clustering vs Classification|聚类vs分类
人工智能·算法·机器学习·ai·分类·数据挖掘·聚类
chao18984410 小时前
遗传算法与粒子群算法优化BP提高分类效果
算法·分类·数据挖掘
ScilogyHunter10 小时前
卫星姿态控制模式全解析:从基准到任务的体系化分类
算法·分类
上去我就QWER11 小时前
Qt中的QShortcut:高效键盘快捷方式开发指南
开发语言·c++·qt
gihigo199812 小时前
MATLAB数值分析方程求解方法详解
算法·机器学习·matlab
QT 小鲜肉12 小时前
【C++基础与提高】第二章:C++数据类型系统——构建程序的基础砖石
开发语言·c++·笔记
程序员buddha16 小时前
C语言数组详解
c语言·开发语言·算法
蒙奇D索大17 小时前
【算法】递归算法的深度实践:从布尔运算到二叉树剪枝的DFS之旅
笔记·学习·算法·leetcode·深度优先·剪枝
卡提西亚18 小时前
C++笔记-25-函数模板
c++·笔记·算法