给定两个字符串 s 和 t ,确定它们是否是同构的。
两个字符串是同构的如果 s 中的字符可以被替换得到 t。
所有出现的字符必须用另一个字符代替,同时保留字符串的顺序。 没有两个字符可以映射到同一个字符,但一个字符可以映射到自己。
样例
样例 1 :
输入 : s = "egg", t = "add"
输出 : true
说明 :
e -> a, g -> d。
样例 2 :
输入 : s = "foo", t = "bar"
输出 : false
说明 :
没有方案。
样例 3 :
输入 : s = "paper", t = "title"
输出 : true
说明 :
p -> t, a -> i, e -> l, r -> e。
注意事项
你可以假定两个字符串 s 和 t 是一样长度的.
思路:将每个字符加入数组,如果对应字符出现次数不同,则说明不是同构。
class Solution {
public:
/**
* @param s: a string
* @param t: a string
* @return: true if the characters in s can be replaced to get t or false
*/
bool isIsomorphic(string &s, string &t) {
// write your code here
int len=s.size();
int ss[256]={0},tt[256]={0};
for (int i = 0; i < s.size(); i++) {
/* code */
if(ss[s[i]]!=tt[t[i]]) return false;
ss[s[i]]++;
tt[t[i]]++;
}
return true;
}
};```