网站如何安装dedecms,怎样自己做网站模板,平面设计职业学校,网站前期定位【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主#xff0c;题解使用C语言。#xff08;若有使用其他语言的同学也可了解题解思路#xff0c;本质上语法内容一致题解使用C语言。若有使用其他语言的同学也可了解题解思路本质上语法内容一致 【题目描述】
给定两个字符串 s 和 t 判断它们是否是同构的。
如果 s 中的字符可以按某种映射关系替换得到 t 那么这两个字符串是同构的。
每个出现的字符都应当映射到另一个字符同时不改变字符的顺序。不同字符不能映射到同一个字符上相同字符只能映射到同一个字符上字符可以映射到自己本身。
【示例一】
输入s egg, t add输出true
【示例二】
输入s foo, t bar输出false
【示例三】
输入s paper, t title输出true
【提示及数据范围】
1 s.length 5 * 10的4次方t.length s.lengths 和 t 由任意有效的 ASCII 字符组成
【代码】
// 用两个键值对相反的哈希表来存储class Solution {
public:bool isIsomorphic(string s, string t) {unordered_mapchar, char s2t;unordered_mapchar, char t2s;int len s.length();for (int i 0; i len; i) {char x s[i], y t[i];if ((s2t.count(x) s2t[x] ! y) || (t2s.count(y) t2s[y] ! x)) {return false;}s2t[x] y;t2s[y] x;}return true;}
};