标签:*** length end 相同 string map str apc add
*****************************************
题目 判断s和t是不是一种模式,eg add cpp是同构
*****************************************
思路:用hash表,将s、t中所有出现过的字符 对应到1-26,比较对应的数字是否相同
class Solution {
public:
bool isIsomorphic(string s, string t) {
if(s.length()!= t.length())
{
return false;
}
map<char ,int>mapchar;
map<char ,int>mapchar1;
for(int i=0;i<s.length();i++)
{
if(mapchar.find(s[i]) == mapchar.end())
{
if(mapchar1.find(t[i]) != mapchar1.end())
{
return false;
}
mapchar.insert(pair<char,int>(s[i],i));
mapchar1.insert(pair<char,int>(t[i],i));
}
else
{ if(mapchar1.find(t[i]) == mapchar1.end())
return false;
if(mapchar1[t[i]] != mapchar[s[i]])
{
return false;
}
}
}
return true;
}
};
标签:*** length end 相同 string map str apc add
原文地址:http://www.cnblogs.com/julie-yang/p/6221719.html