做網(wǎng)站需不需要營(yíng)業(yè)執(zhí)照seo引擎優(yōu)化是什么
給定兩個(gè)字符串?s
?和?t
?,判斷它們是否是同構(gòu)的。
如果?s
?中的字符可以按某種映射關(guān)系替換得到?t
?,那么這兩個(gè)字符串是同構(gòu)的。
每個(gè)出現(xiàn)的字符都應(yīng)當(dāng)映射到另一個(gè)字符,同時(shí)不改變字符的順序。不同字符不能映射到同一個(gè)字符上,相同字符只能映射到同一個(gè)字符上,字符可以映射到自己本身。
示例 1:
輸入:s ="egg",
t ="add"
輸出:true
示例 2:
輸入:s ="foo",
t ="bar"
輸出:false
class Solution {
public:bool isIsomorphic(string s, string t) {if(s.size()==0&&t.size()==0) {return true;}for(int i=0;i<s.size();i++) {if(s.find(s[i])!=t.find(t[i])) {return false;}}return true;}
};
給定一種規(guī)律?pattern
?和一個(gè)字符串?s
?,判斷?s
?是否遵循相同的規(guī)律。
這里的?遵循?指完全匹配,例如,?pattern
?里的每個(gè)字母和字符串?s
?中的每個(gè)非空單詞之間存在著雙向連接的對(duì)應(yīng)規(guī)律。
示例1:
輸入: pattern ="abba"
, s ="dog cat cat dog"
輸出: true
示例 2:
輸入:pattern ="abba"
, s ="dog cat cat fish"
輸出: false
示例 3:
輸入: pattern ="aaaa"
, s ="dog cat cat dog"
輸出: false
class Solution {
public:bool wordPattern(string pattern, string s) {vector<string> res;res = split(s);set<char> set2(pattern.begin(),pattern.end());set<string> set3;for(auto i:res) {set3.insert(i);}if(pattern.size()!=res.size()) {return false;}if(set2.size()!=set3.size()) {return false;}unordered_map<char, string> map2;for(int i=0;i<pattern.size();i++) {map2[pattern[i]] = res[i];} for(int i=0;i<pattern.size();i++) {if(map2[pattern[i]]!=res[i]) {return false;}}return true;}vector<string> split(string s) {int len = s.length();int i(0);string ans= "", temp;vector<string> res;while(i<len) {temp = "";while(i<len&&s[i]==' ') {i++;}while(i<len&&s[i]!=' ') {temp += s[i++];}res.push_back(temp);}return res;}};