35 lines
1.1 KiB
Markdown
35 lines
1.1 KiB
Markdown
|
||
## 题目地址
|
||
https://leetcode-cn.com/problems/isomorphic-strings/
|
||
|
||
## 思路
|
||
|
||
使用两个map 保存 s[i] 到 t[j] 和 t[j] 到 s[i] 的映射关系,如果发现对应不上,立刻返回 false
|
||
|
||
## C++代码
|
||
|
||
```
|
||
class Solution {
|
||
public:
|
||
bool isIsomorphic(string s, string t) {
|
||
unordered_map<char, char> map1;
|
||
unordered_map<char, char> map2;
|
||
for (int i = 0, j = 0; i < s.size(); i++, j++) {
|
||
if (map1.find(s[i]) == map1.end()) { // map1保存s[i] 到 t[j]的映射
|
||
map1[s[i]] = t[j];
|
||
}
|
||
if (map2.find(t[j]) == map2.end()) { // map2保存t[j] 到 s[i]的映射
|
||
map2[t[j]] = s[i];
|
||
}
|
||
// 发现映射 对应不上,立刻返回false
|
||
if (map1[s[i]] != t[j] || map2[t[j]] != s[i]) {
|
||
return false;
|
||
}
|
||
}
|
||
return true;
|
||
}
|
||
};
|
||
```
|
||
> 更过算法干货文章持续更新,可以微信搜索「代码随想录」第一时间围观,关注后,回复「Java」「C++」 「python」「简历模板」「数据结构与算法」等等,就可以获得我多年整理的学习资料。
|
||
|