205. Isomorphic Strings
205. Isomorphic Strings
同构字符串的定义:串S中的某一种字符可以替换成另一种字符使得与串T相同,不限替换次数,替换映射要求两种不同字符不能映射到同一字符
class Solution {
public:
bool isIsomorphic(string s, string t) {
vector<char> m(257, '#');
vector<bool> count(257, false);
// 建立映射
for(int i=0;i<s.size();++i) {
int idx = s[i];
if(m[idx] == '#') {
m[idx] = t[i];
} else if (m[idx]!=t[i]) {
return false;
}
}
// 检查同一字符是否存在多重映射
for(int i=0;i<m.size();++i) {
if (m[i] == '#') continue;
int idx = m[i];
if (count[idx] == false) {
count[idx] = true;
} else {
return false;
}
}
return true;
}
};#string