Isomorphic Strings
Given strings s and t, determine if they are isomorphic.
The strings is isomorphic if the characters in s can is replaced to get t.
All occurrences of a character must is replaced with another character while preserving the order of characters. No, characters may map to the same character and a character may map to itself.
for example,
given " egg "
, " "Add"
, return true.
given " foo "
, " bar "
, return false.
Given "paper"
, "title"
return True.
Note:
Assume both s and T have the same length.
Two strings have a mapping relationship, that is, a one by one correspondence relationship.
such as Egg,add.
E and a correspond, G and D correspond
The map you just started with
Class Solution {public: bool Isisomorphic (string s, String t) { int n =s.length (); map<int,int>m1,m2; for (int i = 0;i < n;i++) { m1[s[i]] = t[i]; M2[t[i]] = s[i]; } for (int i = 0;i < n;i++) { if (m1[s[i]]! = T[i]) return false; if (m2[t[i]! = S[i]) return false; } return true; }};
And then I thought, using an array is the same, and it's much more efficient.
Class Solution {public: bool Isisomorphic (string s, String t) { int n =s.length (); int m1[130] = {0},m2[130] = {0}; for (int i = 0;i < n;i++) { m1[s[i]] = t[i]; M2[t[i]] = s[i]; } for (int i = 0;i < n;i++) { if (m1[s[i]]! = T[i]) return false; if (m2[t[i]! = S[i]) return false; } return true; }};
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
Leetcode-205-isomorphic Strings