同構字符串(Isomorphic Strings)

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章