1、用一个哈希表存储s中各个字符的映射到t的关系,如果s中某字符在前面已经记录过,且对应的映射字符与当前映射字符不同则返回false,迭代结束后进行查重,如果存在重复则说明存在s中不同字符映射到相同字符的情况。
class Solution {
public:
bool isIsomorphic(string s, string t) {
int hash[257];
memset(hash,-1,257*sizeof(int));
int thesize=s.size();
for(int i=0;i<thesize;++i)
{
if(hash[s[i]]!=-1&&hash[s[i]]!=t[i]) return false;
else hash[s[i]]=t[i];
}
sort(hash,hash+257);
for(int i=0;i<256;++i) if(hash[i]==hash[i+1]&&hash[i]!=-1) return false;
return true;
}
};