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.
题意简述:判断两个字符串是否类似,简而言之就是模式是否匹配。
注意:有个神器map.put(key,value) 返回值: 如果之前的key不存在 return null 如果key存在,返回之前的value。是时候去看看jdk容器源码实现了。
写了这么多put竟然不知道put还有这等返回值,果然弱爆了
刷leetcode不看discuss简直等于耍流氓
上源代码:
public boolean isIsomorphic(String s, String t) {
int len1=s.length();
int len2=t.length();
if(len1!=len2) return false;
Map map1=new HashMap();
Map map2=new HashMap();
for(Integer i=0;i<len1;i++)
{
if(map1.put(s.charAt(i),i)!=map2.put(t.charAt(i),i))
return false;
}
return true;
}
不要问我这里的循环变量i为什么不是int,而是Integer 我也不知道 int通不过 integer可以通过