一、學習要點:
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;
}