栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

LeetCode——205.同构字符串

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LeetCode——205.同构字符串

通过万岁!!!

  • 题目:给你两个字符串,然后判断是不是同样的结构,例如,都是ABB类型等。
  • 思路:这个题是之前 890.查找和替换模式的简化版本。因为这里需要建立的是两个字符串的对应关系,也就是说,保证里面的字符串是一一对应的。所以直接用两个数组,因为字符都是ASCII码,所以数组长度我们直接初始化的为127。数组sArr的第j(j是s的第i个字符对应的ascii码)个位置存放t字符串中第i个字符的ascii码,其公式就是sArr[s[i]]=t[i]。
  • 技巧:可以用hashmap进行,这里我直接用的数组建立的对应关系。

java代码

public boolean isIsomorphic(String s, String t) {
    // 890的简化版
    int sl = s.length();
    int tl = t.length();
    if (sl != tl) {
        return false;
    }
    int[] sArr = new int[127];
    int[] tArr = new int[127];
    // 建立对应关系
    for (int i = 0; i < sl; i++) {
        sArr[s.charAt(i)] = t.charAt(i);
        tArr[t.charAt(i)] = s.charAt(i);
    }
    // 检验对应关系
    for (int i = 0; i < sl; i++) {
        if (sArr[s.charAt(i)] == t.charAt(i) && s.charAt(i) == tArr[t.charAt(i)]) {
            continue;
        } else {
            return false;
        }
    }
    return true;
}
  • 总结:题目不是很难,其实也可以通过hashmap进行。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/989921.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号