哈希表可以用ASCII码数组来实现,可以更快

public boolean isIsomorphic(String s, String t) {
/*
思路是记录下每个字符出现的位置,当有重复时,检查另外一个map是不是也是对应位置重复
*/
if (s.length()!=t.length())
{
return false;
} Map<Character,Integer> map1 = new HashMap<>();
Map<Character,Integer> map2 = new HashMap<>();
for (int i = 0; i < s.length(); i++) {
char c1 = s.charAt(i);
char c2 = t.charAt(i);
//有重复的情况
if (map1.containsKey(c1))
{
//注意这里有个小插曲,就是map得到的包装类,所有包装类比较值 相等要用equals()方法,不能用==,这个字符串是一样的
if ((!map2.containsKey(c2))||(!Objects.equals(map2.get(c2), map1.get(c1))))
{
return false;
}
else
{
map1.put(c1,i);
map2.put(c2,i);
}
}
//没有重复的情况
else
{
if (map2.containsKey(c2))
{
return false;
}
map1.put(c1,i);
map2.put(c2,i);
}
}
return true;
}

最新文章

  1. Java内存管理及GC算法
  2. Winform开发框架之参数配置管理功能实现-基于SettingsProvider.net的构建
  3. CSS行内元素和块级元素的居中
  4. cf 363A B C
  5. algorithm@ O(3/2 n) time to findmaximum and minimum in a array
  6. 用python实现k近邻算法
  7. 互联网金融爬虫怎么写-第三课 雪球网股票爬虫(ajax分析)
  8. String+,StringBuilder,String.format运行效率比较
  9. 字符集详解 ------------------------ UNICODE +UTF8
  10. Kerberos-KDC
  11. Centos中如何配置Texlive2013中文字体的问题
  12. linux切换g++
  13. Django_xadmin_应用外键搜索功能错误
  14. python批量解析域名a记录
  15. FastReport快速入门
  16. c# 之Web.config
  17. jsp有哪些内置对象作用分别是什么 分别有什么方法?
  18. rest_framework 之版本控制
  19. 什么是SAP GUI的client
  20. JAVA中3种将byte转换为String的方法

热门文章

  1. E: Package xxx has no installation candidate成功解决
  2. PyQt学习随笔:Model/View架构中的Delegate(委托)
  3. PyQt(Python+Qt)学习随笔:Designer中QDialogButtonBox确认clicked信号是哪个按钮发送的方法
  4. PyQt(Python+Qt)学习随笔:PyQt帮助文档导入assistant后离线查阅
  5. buu学习记录(下)(做题是不可能做题的)
  6. python 练习洗牌
  7. JVM 垃圾回收?全面详细安排!
  8. pandas 删除列
  9. spring框架半自动注解
  10. Notepad++ 使用步骤,熟练掌握notepad++的使用技巧,无疑会大大提升专业技能。以及快捷键操作