题目
LeetCode - 205. Isomorphic Strings
题目链接
https://leetcode.com/problems/isomorphic-strings/
参考博客
解题思路
本题要求:若一个字符串将其中若干字符全部替换,能得到另一个字符串,则这两个字符串同构。
解题:用map记录当前字符在之前出现(若出现过)的位置,即上一次的位置。
注:此题记录上一次的位置加了1,i.e. + 1 +1 +1,是避开诸如测试点"aa, ab",因为第1个字符串中的第2个’a’与第2个字符串中的’b’虽然上一个位置均为0,但是意义不同,因为’b’上一个位置不存在,map默认为0,而’a’不一样。
解题源码
class Solution {
public:
bool isIsomorphic(string s, string t) {
map<char, int> ms, mt;
for (int i = 0; i < s.size(); i++){
if (ms[s[i]] != mt[t[i]]) return false;
ms[s[i]] = mt[t[i]] = i + 1;
}
return true;
}
};