您现在的位置是:首页 > 后台技术 > 数据结构与算法数据结构与算法

同构字符串(图文)

第十三双眼睛2023-12-03【数据结构与算法】人已围观

简介同构字符串
给定两个字符串 s 和 t ,判断它们是否是同构的。
如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。
每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。

思路:利用两个Map,分别记录字符串中的映射,和反映射,一边循环,一边判断。当循环过程中,判断到有不符合的字符,直接返回false。如果循环完毕以后,还没有返回,则表明是同构字符串,返回true。代码如下:
public static boolean method1(String s,String t) {
    if (s == null && t == null) {
        return true;
    }
    if (s == null || t == null) {
        return false;
    }
    if (s.length() != t.length()) {
        return false;
    }
    Map<Character,Character> map1 = new HashMap<>();
    Map<Character,Character> map2 = new HashMap<>();
    for (int i = 0; i< s.length(); i++){
        char c1 = s.charAt(i);
        char c2 = t.charAt(i);
        if ((map1.get(c1) != null && !map1.get(c1).equals(c2)) || (map2.get(c2) != null && !map2.get(c2).equals(c1))) {
            return false;
        }
        map1.put(c1, c2);
        map2.put(c2, c1);
    }
    return true;
}

Tags:

很赞哦! ()

文章评论

    共有条评论来说两句吧...

    用户名:

    验证码:

本站推荐

站点信息

  • 网站名称:JavaStudy
  • 建站时间:2019-1-14
  • 网站程序:帝国CMS7.5
  • 文章统计242篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 微信公众号:扫描二维码,关注我们