您的位置:首页 > 其它

开始刷leetcode day1:Isomorphic Strings

2015-05-02 12:08 288 查看
题目:

Given two strings s and t, determine if they are isomorphic.

Two strings are isomorphic if the characters in s can be replaced to get t.

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 both s and t have the same length.

Java version

public class Solution {

public boolean isIsomorphic(String s, String t) {

HashMap<Character, Character> hashmap = new HashMap<Character,Character>();

HashMap<Character, Character> hashmap2 = new HashMap<Character,Character>();

char[] slist = s.toCharArray();

char[] tlist = t.toCharArray();

for(int i = 0; i< s.length(); i++)

{

if(hashmap.get(slist[i]) == null)

{

if(hashmap2.get(tlist[i]) != null)

return false;

hashmap.put(slist[i],tlist[i]);

hashmap2.put(tlist[i],slist[i]);

}

else if(hashmap.get(slist[i]) != tlist[i])

{

return false;

}else

{

//doing nothing when equals

}

}

return true;

}

}

笨办法,有待改进, 需要注意情况ab aa应该返回false,所以需要第二个hashmap,用来反向检查
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: