一、题目
二、思路
1、构建两个哈希表
2、当没有映射时:判断t[i]是否是value值,如果存在,则说明出错;当有映射时,判断映射是否准确
三、代码
class Solution {
public:
bool isIsomorphic(string s, string t) {
if(s.length()!=t.length())
{
return false;
}
//构建两个哈希表
unordered_map<char,char>dic;
unordered_map<char,char>revdic;
for(int i=0;i<s.length();++i)
{
//当从S到T没有映射时
if(dic.count(s[i])==0 )
{
//判断是否已经有S到T的映射,只是没在dic中
if(revdic.count(t[i])!=0)
{
return false;
}
dic.emplace(s[i],t[i]);
revdic.emplace(t[i],s[i]);
}
else
{
//当有映射时,判断是否相等
if(dic[s[i]]!=t[i])
{
return false;
}
}
}
return true;
}
};