Isomorphic Strings

Given two strings s and t, determine if they are isomorphic.

Two strings are isomorphic if the characters in s can be replaced to get t.

All occurrences of a character must be replaced with another character while preserving the order of characters. No two characters may map to the same character but a character may map to itself.

For example,
Given "egg", "add", return true.

Given "foo", "bar", return false.

Given "paper", "title", return true.

Note:
You may assume both s and t have the same length.

class Solution {
public:
    bool isIsomorphic(string s, string t) {
        int sTotTable[256];
        int tTosTable[256];
        int size = s.length();
        for (int i = 0; i < 256; i++)
        {
            sTotTable[i] = 300;
            tTosTable[i] = 300;
        }

        for (int i = 0; i < size; i++)
        {
            if (sTotTable[s[i]] == 300)
            {
                if (tTosTable[t[i]] == 300)
                {
                    sTotTable[s[i]] = t[i];
                    tTosTable[t[i]] = s[i];
                }
                else
                {
                    return false;
                }
            }
            else
            {
                if (sTotTable[s[i]] != t[i])
                {
                    return false;
                }
            }
        }

        return true;
    }
};


你可能感兴趣的:(Isomorphic Strings)