205. 同构字符串

 

第一反应是用Map建立哈希映射来比对对应关系,知道看到大佬的题解

根据题意,字符串中相同的字符必然对应同一个映射

时间O(n)(这里的n其实并不准确,因为indexOf内部是使用的暴力的方法去查找),空间O(1)

 

1     public boolean isIsomorphic(String s, String t) {
2         for(int i=0;i<s.length();i++){
3             // 按题意,相同的字符必然有相同的映射
4             if(s.indexOf(s.charAt(i))!=t.indexOf(t.charAt(i))){
5                 return false;
6             }
7         }   
8         return true;
9     }

另外提一嘴,indexOf内部为什么没有用KMP等高效匹配算法

http://stackoverflow.com/questions/19543547/why-jdks-string-indexof-does-not-use-kmp/

大概意思就是JDK的大佬们认为大部分情况下indexOf所处理的字符都不长,使用KMP的话首先计算next数组

的消耗都够查找一次的了,因此没有使用KMP

 

 

posted @ 2021-04-27 10:42  jchen104  阅读(33)  评论(0编辑  收藏  举报