首页 > 其他分享 >【LeeCode】205. 同构字符串

【LeeCode】205. 同构字符串

时间:2023-06-03 14:31:54浏览次数:47  
标签:同构 isIsomorphic 205 String Solution LeeCode c2 new c1


【题目描述】

给定两个字符串 s 和 t ,判断它们是否是同构的。

如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。

每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。

https://leetcode.cn/problems/isomorphic-strings/

【示例】

【LeeCode】205. 同构字符串_字符串


【代码】leecode

【LeeCode】205. 同构字符串_字符串_02

package com.company;
import java.util.*;

// 2023-06-03
class Solution {
    public boolean isIsomorphic(String s, String t) {
        int n = s.length();
        HashMap<Character, Character> map = new HashMap<>();
        HashMap<Character, Character> map2 = new HashMap<>();

        int len = s.length();
        for (int i = 0; i < len;  i++){
            char c1 = s.charAt(i);
            char c2 = t.charAt(i);
            if ((map.containsKey(c1) && map.get(c1) != c2) && (map2.containsKey(c2) && map2.get(c2) != c1)){
                return false;
            }
            map.put(c1, c2);
            map2.put(c2, c1);
        }
        return true;
    }
}


public class Test {
    public static void main(String[] args) {
       new Solution().isIsomorphic("egg", "add"); // 输出: true
       new Solution().isIsomorphic("foo", "bar"); // 输出: false
       new Solution().isIsomorphic("badc", "baba"); // 输出: false
    }
}


【代码】最简单

判断下标是否一致

class Solution {
    public boolean isIsomorphic(String s, String t) {
          for(int i = 0; i < s.length(); i++){
              if(s.indexOf(s.charAt(i)) != t.indexOf(t.charAt(i))){
                  return false;
              }
          }  
          return true;
    }
}


【代码】

通过率 33/40   这里的问题应该是只做了单项的映射

package com.company;
import java.util.*;

// 2023-06-03
class Solution {
    public 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;
    }
}


public class Test {
    public static void main(String[] args) {
//        new Solution().isIsomorphic("egg", "add"); // 输出: true
//        new Solution().isIsomorphic("foo", "bar"); // 输出: false
        new Solution().isIsomorphic("badc", "baba"); // 输出: false
    }
}

标签:同构,isIsomorphic,205,String,Solution,LeeCode,c2,new,c1
From: https://blog.51cto.com/u_13682316/6407934

相关文章

  • 邦加德问题,数学、绘画、音乐的同构
    下面这10张图,每一张里,左边一组与右边一组的差异是什么?这就是邦加德问题,最原始的问题一共有100个,我挑了10个,图前为序号。看你能回答出来几个(答案在文末)。22474951555870858791好了,我是怎么知道这个奇怪的类似智商测试题的玩意儿?过去的几个月,断断续续看了一本1000多页的书,叫《哥德尔......
  • 7-3 树的同构 (25分)
    7-3树的同构(25分)给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。图1图2现给定两棵树,请你判断它们是否是同构......
  • 基于搜索的同构类约束路径规划算法-1
    摘要:目标导向的路径规划在移动机器人领域是基础且被广泛研究。由于障碍物的存在而产生的同一类轨迹,被定义为可以通过逐渐弯曲和拉伸而在不与障碍物碰撞的情况下相互转换的轨迹集合。在诸如预测动态实体的路径和计算具有动态约束的路径规划的启发式算之类的应用中,频繁出现寻找限制......
  • 基于搜索的同构类约束路径规划算法
    摘要:目标导向的路径规划在移动机器人领域是基础且被广泛研究。由于障碍物的存在而产生的同一类轨迹,被定义为可以通过逐渐弯曲和拉伸而在不与障碍物碰撞的情况下相互转换的轨迹集合。在诸如预测动态实体的路径和计算具有动态约束的路径规划的启发式算之类的应用中,频繁出现寻找限制......
  • 共同构筑企业数字底座!启明信息自主云平台赋能企业数智化
    过去十年,企业数字化经历了服务器、云化、云原生化的转型过程。目前云原生技术已成为企业加速数字化转型、实现高效创新的最佳技术支撑,而在以“数实相融算启未来”为主题的2023中国国际大数据产业博览会上,启明信息技术股份有限公司(以下简称:启明信息)除展示企业11款最新数智化科技成......
  • 共同构筑企业数字底座!启明信息自主云平台赋能企业数智化
    过去十年,企业数字化经历了服务器、云化、云原生化的转型过程。目前云原生技术已成为企业加速数字化转型、实现高效创新的最佳技术支撑,而在以“数实相融算启未来”为主题的2023中国国际大数据产业博览会上,启明信息技术股份有限公司(以下简称:启明信息)除展示企业11款最新数智化科技成......
  • 不同路径 II(数组、动态规划)、同构字符串(哈希表、字符串)、颠倒二进制位(位运算、分
    不同路径II(数组、动态规划)一个机器人位于一个_mxn_网格的左上角(起始点在下图中标记为“Start”)。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网......
  • P2052 [NOI2011] 道路修建
    题不算难,但还是有一点坑的求一条边一侧的结点数量显然可以dfs求出来,另一侧结点数就是\(n-size_i\),其中\(size_i\)是结点\(i\)的子树大小。longlongans,size[N];inlinevoiddfs(intp,intfa){ size[p]=1; for(autoi:v[p]){ if(i.to==fa)continue; dfs(i.to,p......
  • windows11上安装PL-SQL Developer 15.0.3.2059
    注:连接的oracle服务端是oracle12c1.环境准备(1).下载oracle客户端下载以下版本均可:此处我下载的是instantclient-basic-nt-12.2.0.1.0.zip(2).下载PL-SQLDeveloper15.0.3.2059下载地址:https://www.jb51.net/softs/820654.html2.解压配置oracle客户端首先在磁盘上创建D......
  • NC20545 [HEOI2012]采花
    题目链接题目题目描述萧芸斓是Z国的公主,平时的一大爱好是采花。今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花。花园足够大,容纳了\(n\)朵花,花有\(c\)种颜色(用整数\(1-c\)表示),且花是排成一排的,以便于公主采花。公主每次采花后会统计采到的花的颜色数,颜色数......