😂实现一
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| class Solution { public: bool isIsomorphic(string s, string t) { unordered_map<char, int> st, tt; for(int i = 0; i < s.size(); ++i) { if(st.count(s[i]) == 1 || tt.count(t[i]) == 1) { if(tt.count(t[i]) != 1 || st.count(s[i]) != 1 || tt.at(t[i]) != st.at(s[i])) return false; } st.insert({s[i], i}); tt.insert({t[i], i}); } return true; } };
|
Accepted
30/30 cases passed (40 ms)
Your runtime beats 5.2 % of cpp submissions
Your memory usage beats 5.04 % of cpp submissions (15 MB)
🤫实现二
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| class Solution { public: bool isIsomorphic(string s, string t) { map<char, char> mp1, mp2; for(int i = 0; i < s.size(); ++i) { if(mp1.find(s[i]) == mp1.end()) { mp1.insert({s[i], t[i]}); } else { if(mp1[s[i]] != t[i]) return false; } if(mp2.find(t[i]) == mp2.end()) { mp2.insert({t[i], s[i]}); } else { if(mp2[t[i]] != s[i]) return false; } } return true; } };
|
Accepted
30/30 cases passed (24 ms)
Your runtime beats 13.07 % of cpp submissions
Your memory usage beats 6.98 % of cpp submissions (9.5 MB)
🤫实现三
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| class Solution { public: bool isIsomorphic(string s, string t) { return transf(s) == transf(t); } vector<int> transf(string s) { int count = 0; int a[128] = {0}; vector<int> res; for(int i = 0; i < s.size(); ++i) { if(a[s[i]] == 0) { a[s[i]] = ++count; } res.push_back(a[s[i]]); } return res; } };
|
Accepted
30/30 cases passed (8 ms)
Your runtime beats 90.9 % of cpp submissions
Your memory usage beats 5.06 % of cpp submissions (10.8 MB)