[Java][Leetcode simple] 205. 同构字符串

法1: 单哈希表

  • 遍历s,如果sc不在map中,需要添加映射关系。(此时,要排除多对一的关系:例如:bacd,baba;此时b已经被b映射了,就不能再映射到d上 )
  • 如果sc在map中,此时说明已经添加过映射关系了,此时取出当时的映射关系,如果与tc不相等,说明本次的映射关系错误
java 复制代码
class Solution {
    public boolean isIsomorphic(String s, String t) {
         if(s.length() != t.length()) return false;
         int n = s.length();
         Map<Character,  Character> map = new HashMap<>();
         for(int i = 0;i< n ;i++){
              char sc = s.charAt(i);
              char tc = t.charAt(i);
               if(!map.containsKey(sc)){
                    if(map.containsValue(tc)) return false;
                    map.put(sc, tc);
               }else{
                   char tmp = map.get(sc);
                   if(tmp != tc) return false;
               }
         }
         return true;
    }
}

法2:官解:双数组字符映射

哈希表map.containsValue o(K) 还是有点耗时,采用两个数组分别记录映射关系。

java 复制代码
class Solution {
    public boolean isIsomorphic(String s, String t) {
        if(s.length() != t.length()) return false;
        int n = s.length();
        int[] mapS = new int[256]; 
        int[] mapT = new int[256]; 
        for(int i = 0;i<n ;i++){
            char c1 = s.charAt(i);
            char c2 = t.charAt(i);
            if(mapS[c1] != 0 &&  mapS[c1] != c2 ) return false;
            if(mapT[c2] != 0 &&  mapT[c2] != c1 ) return false;

            mapS[c1] = c2;
            mapT[c2] = c1;
        }
        return true;
    }
}
相关推荐
mldong5 小时前
一个 App,十三套后端:手机审批端 uni-jeeflow-app 开源了
java·架构
tqs_123456 小时前
MySQL RR隔离级别死锁|Gap间隙锁、临键锁,订单并发范围查询死锁根因方案
java
逆境不可逃6 小时前
Pi Agent 学习笔记:多个工具怎样并行执行
java
v_34836087626 小时前
Android native端 堆栈打印
android·算法
residual_fan6 小时前
【学术论文】航空发动机故障诊断智能体:基于持续对比强化学习的动态优化方法
人工智能·算法·数据挖掘·数据分析
Flynt7 小时前
Java 27 升级实测:默认值动得比新特性多,有个老参数会让 JVM 直接起不来
java·jvm·后端
Bs_MoneyMagnet7 小时前
基于springboot+vue的个人健康管理系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·vue3·springboot3·计算机毕业设计
GreenTea7 小时前
OpenAI Agents API 上手实测:一次调用把整个 agent loop 甩给 OpenAI
前端·后端·算法
星云API技术支持7 小时前
企业微信二次开发:群权限设置、成员管理与群资料维护的接口组合实践
java·前端·企业微信
niucloud-admin7 小时前
JAVA V6 多商户商城 开发文档——job 计划任务开发
java·python·github