LeetCode : 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.

class Solution {
public:
     string transferStr(string s){
        char table[128] = {0};
        char tmp = '0';
        for (int i=0; i<s.length(); i++) {
            char c = s.at(i);
            if (table[c] == 0) {
                table[c] = tmp++;
            }
            s[i] = table[c];
        }
        return s;
    }
    bool isIsomorphic(string s, string t) {

        if (s.length() != t.length()) {
            return false;
        }
        if (transferStr(s) == transferStr(t)) {
            return true;
        }
        return false;
    }
};

posted on 2017-04-11 20:33  gechen  阅读(75)  评论(0编辑  收藏  举报

导航