LeetCode OJ:Isomorphic Strings(同构字符串)
2015-12-25 21:37
375 查看
Given two strings s and t, determine if they are isomorphic.
Two strings are isomorphic if the characters in s can be replaced to get t.
All occurrences of a character must be replaced with another character while preserving the order of characters. No two characters may map to the same character but a character may map to itself.
For example,
Given
Given
Given
看两个字符串是否同构,用map就可以解决,不过要注意双向都要检查,代码如下:
Two strings are isomorphic if the characters in s can be replaced to get t.
All occurrences of a character must be replaced with another character while preserving the order of characters. No two characters may map to the same character but a character may map to itself.
For example,
Given
"egg",
"add", return true.
Given
"foo",
"bar", return false.
Given
"paper",
"title", return true.
看两个字符串是否同构,用map就可以解决,不过要注意双向都要检查,代码如下:
class Solution { public: bool isIsomorphic(string s, string t) { map<char, char> m1; map<char, char> m2; if(s.size() != t.size()) return false; for(int i = 0; i < s.size(); ++i){ if(m1.find(s[i]) == m1.end() && m2.find(t[i]) == m2.end()){ m1[s[i]] = t[i]; m2[t[i]] = s[i]; } else if(m1.find(s[i]) != m1.end() && m2.find(t[i]) != m2.end()){ if(m1[s[i]] != t[i] || m2[t[i]] != s[i]) return false; }else{ return false; } } return true; } };
相关文章推荐
- 大话设计模式之模板方法模式(Java版实现)考生做试卷问题
- php开发(TP框架使用)
- 行在路上
- iOS开发过程中的常见错误
- P1067Warcraft III 守望者的烦恼(十大矩阵问题之七求递推式)
- 使用BaseAdapter实现ListView
- 一个IT人士的个人经历,给迷失方向的朋友
- 二叉排序树C++构造
- HTML图像标记--3
- 转义字符及其意义
- stm32f10x.h 是库3.0以后的; stm32f10x_lib.h 这个是库2.0的吧 哎,打开看看不就知道了啊!
- 数据文件误删导致数据库用户不能登陆
- uva11100
- linux实现系统调用打印进程信息
- 训练深度模型的优化问题(十一)
- 一个积分问题
- 数字图像处理8--Canny算子中涉及到的几个问题
- 词法分析的各类用途2
- iOS 自定义UITabBarController的tabBar
- 作业8: 软件工程学习总结