205Isomorphic Strings同構字串
阿新 • • 發佈:2018-12-15
給定兩個字串 s 和 t,判斷它們是否是同構的。
如果 s 中的字元可以被替換得到 t ,那麼這兩個字串是同構的。
所有出現的字元都必須用另一個字元替換,同時保留字元的順序。兩個字元不能對映到同一個字元上,但字元可以對映自己本身。
示例 1:
輸入: s = "egg", t = "add" 輸出: true
示例 2:
輸入: s = "foo", t = "bar" 輸出: false
示例 3:
輸入: s = "paper", t = "title" 輸出: true
說明:
你可以假設 s 和 t 具有相同的長度。
一個字元只能對映一個字元
e-r,r-e,l-r正確
a-a,b-a錯誤(因為a映射了a和b)
所以還要再設定一個map用來檢測
class Solution { public: bool isIsomorphic(string s, string t) { map<char, char> hax; map<char, char> check; if(s.size() != t.size()) return false; int len = s.size(); for(int i = 0; i < len; i++) { if(hax[s[i]] == 0) { hax[s[i]] = t[i]; if(check[t[i]] != 0 && check[t[i]] != s[i]) return false; check[t[i]] = s[i]; } else { if(hax[s[i]] != t[i]) return false; } } return true; } };