*****************************************
题目 判断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; } };
时间: 2024-10-20 12:48:12