1. 程式人生 > >LeetCode 205.Isomorphic Strings (同構字串)

LeetCode 205.Isomorphic Strings (同構字串)

題目描述:
 

給定兩個字串 和 t,判斷它們是否是同構的。

如果 中的字元可以被替換得到 ,那麼這兩個字串是同構的。

所有出現的字元都必須用另一個字元替換,同時保留字元的順序。兩個字元不能對映到同一個字元上,但字元可以對映自己本身。

示例 1:

輸入: s = "egg", t = "add"

輸出: true

示例 2:

輸入: s = "foo", t = "bar"

輸出: false

示例 3:

輸入: s = "paper", t = "title"

輸出: true

說明:
你可以假設 和 具有相同的長度。

 

 

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;
    }
};