題目:
給定兩個字符串 s 和 t渤涌,判斷它們是否是同構(gòu)的佩谣。
如果 s 中的字符可以被替換得到 t ,那么這兩個字符串是同構(gòu)的实蓬。
所有出現(xiàn)的字符都必須用另一個字符替換茸俭,同時保留字符的順序吊履。兩個字符不能映射到同一個字符上,但字符可以映射自己本身调鬓。
示例 1:
輸入: s = "egg", t = "add"
輸出: true
示例 2:
輸入: s = "foo", t = "bar"
輸出: false
示例 3:
輸入: s = "paper", t = "title"
輸出: true
說明:
你可以假設(shè) s 和 t 具有相同的長度艇炎。
鏈接:https://leetcode-cn.com/problems/isomorphic-strings
思路:
1、同構(gòu)就是說兩個字符串有同樣的結(jié)構(gòu)腾窝,比如ABB和CDD缀踪,這就是相同的結(jié)構(gòu)
2、本解法是遍歷字符串s虹脯,判斷字符串s中每個元素的索引位置和t的索引位置是否相同驴娃,即可判斷兩字符串是否同構(gòu)
Python代碼:
class Solution(object):
def isIsomorphic(self, s, t):
"""
:type s: str
:type t: str
:rtype: bool
"""
for i in range(len(s)):
if s.index(s[i]) != t.index(t[i]):
return False
return True
C++代碼:
class Solution {
public:
bool isIsomorphic(string s, string t) {
for (int i=0; i<s.size(); i++){
if(s.find(s[i]) != t.find(t[i])){
return false;
}
}
return true;
}
};