LeetCode 205.Isomorphic Strings (同構字串)
阿新 • • 發佈:2018-11-20
題目描述:
給定兩個字串 s 和 t,判斷它們是否是同構的。
如果 s 中的字元可以被替換得到 t ,那麼這兩個字串是同構的。
所有出現的字元都必須用另一個字元替換,同時保留字元的順序。兩個字元不能對映到同一個字元上,但字元可以對映自己本身。
示例 1:
輸入: s = "egg", t = "add"
輸出: true
示例 2:
輸入: s = "foo", t = "bar"
輸出: false
示例 3:
輸入: s = "paper", t = "title" 輸出: true
說明:
你可以假設 s 和 t 具有相同的長度。
AC C++ Solution:
class Solution { public: bool isIsomorphic(string s, string t) { int m1[256] = {0}, m2[256] = {0}, n = s.size(); //初始化為0 for(int i = 0; i < n; i++) { if(m1[s[i]] != m2[t[i]]) //當遇到同位不相等時,錯誤 return false; m1[s[i]] = i+1; //初次遇見,賦值i+1 (賦值i+1而不是i,因為若當i=0時,賦值0和初始化值是相等的,這無意義) m2[t[i]] = i+1; //...... } return true; } };