一、学习要点:
1.构造两个哈希表;
2.由于为字符串,每个哈希表的长度为256;
3.字符串的字符比较则为哈希值的比较;如果出现之前构造过哈希值的字符,则取出哈希值比较即可,同一映射的哈希值相同;不为同一映射,哈希值则不相同;
二、代码实现:
#include<stdlib.h>
#include<stdio.h>
#include<string>
using namespace std;
class Solution{
public:
bool Isomorphic(string s1,string s2)
{
int m1[128]={0};
int m2[128]={0};
for(int i=0;i<s1.size()-1;i++)
{
if(m1[s1[i]]!=m2[s2[i]]){
return false;
}else{
m1[s1[i]]=i+1;
m2[s2[i]]=i+1;
}
}
return true;
}
};
int main()
{
string s1="abb";
string s2="cdd";
int ans;
Solution ob;
ans=ob.Isomorphic(s1,s2);
printf("%d",ans);
system("pause");
return 0;
}