题目描述: (1)给定两个字符串 s 和 t,判断它们是否是同构的。
(2)如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。
(3)所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。
示例 1: 输入: s = "egg", t = "add" 输出: true 示例 2: 输入: s = "foo", t = "bar" 输出: false 示例 3: 输入: s = "paper", t = "title" 输出: true 说明: 你可以假设 s 和 t 具有相同的长度。 private boolean isIsomorphicHelper(String s, String t) { int n = s.length(); HashMap<Character, Character> map = new HashMap<>(); for (int i = 0; i < n; i++) { char c1 = s.charAt(i); char c2 = s.charAt(i); if (map.containsKey(c1)) { if (map.get(c1) != c2) { return false; } } else { map.put(c1, c2); } } return true; } class Solution { public boolean isIsomorphic(String s, String t) { int len = s.length(); for(int i=0; i<len; i++) { char a = s.charAt(i); char b = t.charAt(i); if(s.indexOf(a) != t.indexOf(b)) return false; } return true; } } Java中字符串中子串的查找共有四种方法(indexof()) indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回-1。 如果 startindex 是负数,则 startindex 被当作零。如果它比最大的字符位置索引还大,则它被当作最大的可能索引。 Java中字符串中子串的查找共有四种方法,如下: 1、int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。 2、int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。 3、int lastIndexOf(String str) :返回在此字符串中最右边出现的指定子字符串的索引。 4、int lastIndexOf(String str, int startIndex) :从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。