题目:给定两个字符串s和*t*,判断它们是否同构。如果s中的字符可以替换为*t*,则两个字符串是同构的。所有出现的字符都必须替换为另一个字符,同时保留字符的顺序。两个字符不能映射到同一个字符,但一个字符可以映射自己。给定两个字符串s*和t*,确定它们是否同构。如果s*中的字符可以替换为t*,则两个字符串是同构的。所有出现的字符都必须替换为另一个字符,同时保留字符的顺序.没有两个字符可以映射到同一个字符,但一个字符可以映射到它自己。示例1:输入:s="egg",t="add"输出:true示例2:输入:s="foo",t="bar"输出:false示例3:输入:s="paper",t="title"输出:true解释:你可以假设s和*t*的长度相同。注意:您可以假设s*和t*具有相同的长度。解题思路:例3中输入:s="paper",t="title",其中字母映射结果:p<==>t,a<==>i,e<==>l,r<==>e映射的字母可以一个一个替换得到对应的单词,是一个同构字符串。非同构字符串无外乎两种情况(假设等长):s='aa',t='ab',建立字母映射后a<==>a,s的第二个字母a的映射值=a不等于t中的第二个字母bs='ab',t='aa',建立字母映射a<==>b后,t=a中的第二个字母a的映射键不等于到s中的第一个字母两个字母b,所以这个可以用两个hashmap来验证上面两种情况,或者用一个mapplus判断它的values中是否存在。既然是创建映射字符,第一个想到的是hashmap(map,dict)。这道题是英文单词串的同构检测,整个ASCll码的长度只有256,所以这道题也可以用char[256]来与具有索引值的字符对应,并与字符对应的存储值建立映射关系。还有一个更巧妙的解决方案。每个字符与字符串中第一次出现的索引进行比较,判断是否同构。
