Given two strings s and t, determine if they are isomorphic.
Two strings are isomorphic if the characters in s can be replaced to gett.
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.
Note:
You may assume both s and t have the same length.
题目思路:
具体思路是使用两个Hash Map来跟踪两个字符串,待整理,先贴出来代码,代码如下:
class Solution {
public:
string transferStr(string s){
char table[128] = {0};
char tmp = '0';
for(int i =0; i<s.length(); i++){
char c =s.at(i);
if(table[c] == 0){
table[c] = tmp++;
}
s[i] =table[c];
}
return s;
}
bool isIsomorphic(string s, string t) {
if(s.length() != t.length()){
return false;
}
if(transferStr(s) == transferStr(t)){
return true;
}
return false;
}
};