首页 > 学院 > 开发设计 > 正文

[LeetCode] Isomorphic Strings

2019-11-15 01:16:23
字体:
来源:转载
供稿:网友
[LeetCode] 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.

个人觉得挺有意思的一道题。首先要理解到底啥才叫lsomorphic strings。归纳出其的特点。

其实就是字母可以不相同,但是结构必须相同。就是说对于string s,其出现重复字母的index必须和string t,出现重复的字母的index相等而且数量也相同。

搞清楚这个就可以用if statement来写判断了。

代码如下。~

public class Solution {    public boolean isIsomorphic(String s, String t) {        if(s.length()!=t.length()) return false;        HashMap<Character,Integer> smap=new HashMap<>();        HashMap<Character,Integer> tmap=new HashMap<>();        for(int i=0;i<s.length();i++){            if(!smap.containsKey(s.charAt(i))){                if(tmap.containsKey(t.charAt(i))){                    return false;                }            }else{                int index=smap.get(s.charAt(i));                if(!tmap.containsKey(t.charAt(i))||tmap.get(t.charAt(i))!=index){                    return false;                }            }            smap.put(s.charAt(i),i);            tmap.put(t.charAt(i),i);        }        return true;    }}


上一篇:[LeetCode] Swap Nodes in Pairs

下一篇:Plus One

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表