【LeetCode】205. 同构字符串

205. 同构字符串(简单)



方法:哈希映射

思路

  • 判断两个字符串是不是同构字符串,只需要判断对应的字符是不是存在映射关系,我们可以使用 map 来保存字符间的映射关系。
  • 由于 "不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上",因此,我们既需要判断 s -> t 的映射是否符合要求,又需要判断 t -> s 的映射是否符合要求。 这里我们设置了两个 map ,分别保存两种映射关系。

代码

cpp 复制代码
class Solution {
public:
    bool isIsomorphic(string s, string t) {
        if(s.size() != t.size()) return false; 
        unordered_map<char, char> ascii_s, ascii_t;
        for(int i=0; i<s.size(); ++i){
            // 说明已经存在该字符
            if(ascii_s.find(s[i]) != ascii_s.end()){
                if(t[i] != ascii_s[s[i]]) return false;
            }
            // 不存在该字符
            else{
                ascii_s[s[i]] = t[i];
            }
            // 另外一个方向遍历
            if(ascii_t.find(t[i]) != ascii_t.end()){
                if(s[i] != ascii_t[t[i]]) return false;
            }
            else{
                ascii_t[t[i]] = s[i];
            }
        }
        return true;
    }
};
相关推荐
52Hz11820 分钟前
二叉树理论、力扣94.二叉树的中序遍历、104.二叉树的最大深度、226.反转二叉树、101.对称二叉树
python·算法·leetcode
Shirley~~27 分钟前
leetcode移除元素
javascript·数据结构·算法
普贤莲花34 分钟前
新生2026年1月20日---星期二(大寒)
程序人生·算法·leetcode
高洁0134 分钟前
产品数字孪生体与数字样机及数字化交付的应用
人工智能·深度学习·算法·数据挖掘·transformer
2501_9415079435 分钟前
通信基站天线设备检测与分类YOLO11-LSCD-LQE算法实现与优化
算法·分类·数据挖掘
wen__xvn44 分钟前
基础数据结构第08天:栈(实战篇)
数据结构·c++·算法
玄鱼殇1 小时前
前端排序算法
算法·排序算法
tqs_123451 小时前
倒排索引数据结构
java·前端·算法
a程序小傲1 小时前
听说前端又死了?
开发语言·前端·mysql·算法·postgresql·深度优先
副露のmagic1 小时前
python基础复健
python·算法