leetCode 205. Isomorphic Strings 哈希 字符串相似
205. Isomorphic Strings 字符串相似
Given two stringssandt, determine if they are isomorphic.
Two strings are isomorphic if the characters inscan be replaced to gett.
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 bothsandthave the same length.
题目大意:
判断两个字符串是否相似。
思路:
使用双map来进行比较。map键为字符串元素,值为字符上一次出现的位置。
代码如下:
classSolution{public:boolisIsomorphic(strings,stringt){if(s.size()!=t.size())returnfalse;unordered_map<char,int>maps;unordered_map<char,int>mapt;for(inti=0;i<s.size();i++){if(maps.find(s[i])==maps.end()&&mapt.find(t[i])==mapt.end()){maps.insert(pair<char,int>(s[i],i));mapt.insert(pair<char,int>(t[i],i));}elseif(maps.find(s[i])!=maps.end()&&mapt.find(t[i])!=mapt.end()){if(maps[s[i]]!=mapt[t[i]])returnfalse;else{maps[s[i]]=i;mapt[t[i]]=i;}}elsereturnfalse;}returntrue;}};
2016-08-13 17:15:21
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。