Leetcode 205 Isomorphic Strings

lc205 Isomorphic Strings

思路就是检测s中相同字母在不同位置映射到t中相应位置的字母是否相同

举例来说,egg adj,第一个g对应位置的字母是d,而第二个g对应位置的字母是j,返回false

 

怎么检查是否相同呢?

最容易想到的就是HashMap<Character, Character>

 

还有一种方法,可以用int[128],与前者直接检查映射字母的方法不同,这里检查映射位置,每次检查当前mapS[s[i]] ?= mapT[t[i]],即判断当前字母s[i]和字母t[i]映射的位置是否相同

 1 class Solution {
 2     public boolean isIsomorphic(String s, String t) {
 3         if(s.length() == 0 && t.length() == 0)
 4             return true;
 5         int[] mapS = new int[256];
 6         int[] mapT = new int[256];
 7         
 8         for(int i=0; i<s.length(); i++){
 9             if(mapS[s.charAt(i)] != mapT[t.charAt(i)])
10                 return false;
11             mapS[s.charAt(i)] = i + 1;
12             mapT[t.charAt(i)] = i + 1;
13         }
14         
15         
16         return true;
17         
18     }
19 }

 

posted @ 2019-05-29 15:41  南山南北秋悲  阅读(123)  评论(0编辑  收藏  举报