1,题目要求
Given two strings s and t, determine if they are isomorphic.

Two strings are isomorphic if the characters in s can be replaced to get t.

All occurrences of a character must be replaced with another character while preserving the order of characters. No two characters may map to the same character but a character may map to itself.

判断两个单词是不是同构的——也即两个单词是否能通过直接的字符替代而变成对方的形式。

2,题目思路
一开始,想到用hash,但是涉及到字符与出现数量,又想到了构建一个map。后来感觉这样比较麻烦,有觉得可以构建一个字符出现次序字符串,按顺序统计每一个字符出现的数量,比如egg,出现数量统计就是:12,apple,就是:1211。
但其实这样做是不满足题设条件的。题目的意思是不仅是字符的临近次序要一样,更重要的是字符出现的总次序也要一样才行。
譬如:applpe 和 ellpcr,如果只按照临近顺序来看,它们是满足条件的,但其实他们是不满足的条件的。
只有像applpe 和 ellplcr这样的才是满足的。
因此,题目也是可以直接用hash来做的,因为字符可以隐式地转换成数字的形式。而根据ascii表,最大的字符对应数字为127,因此只需要创建一个长度为为128的向量数组即可。

3,程序源码

class Solution {
public:bool isIsomorphic(string s, string t) {vector<int> ss(128,-1), tt(128,-1);int len = s.size();for(int i=0;i<len;i++){if(ss[s[i]] != tt[t[i]])return false;ss[s[i]] = i;tt[t[i]] = i;}return true;}
};

205. Isomorphic Strings相关推荐

  1. 205 Isomorphic Strings

    205 Isomorphic Strings 链接:https://leetcode.com/problems/isomorphic-strings/ 问题描述: Given two strings ...

  2. LeetCode 205 Isomorphic Strings(同构的字符串)(string、vector、map)(*)

    翻译 给定两个字符串s和t,决定它们是否是同构的.假设s中的元素被替换能够得到t,那么称这两个字符串是同构的.在用一个字符串的元素替换还有一个字符串的元素的过程中.所有字符的顺序必须保留. 没有两个字 ...

  3. leetcode python3 简单题205. Isomorphic Strings

    1.编辑器 我使用的是win10+vscode+leetcode+python3 环境配置参见我的博客: 链接 2.第二百零五题 (1)题目 英文: Given two strings s and t ...

  4. Easy-题目46:205. Isomorphic Strings

    题目原文: Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the ...

  5. leetcode之Isomorphic strings

    问题来源:Isomorphic strings 问题描述:给定两个字符串,判断它俩是否满足同构关系.同构关系表示两个字符串的字符能一一对应,例如title和paper构成同构关系,而foo和bar不构 ...

  6. hdu 6863 Isomorphic Strings

    Isomorphic Strings 题解:暴力枚举n的所有因子,判断是否合法.判断合法第一步:判断每段中各字符出现次数是否相同,第二部:判断每段的最小表示是否相同.因子还可以减枝. #include ...

  7. CodeForces - 985F Isomorphic Strings

    假如两个区间的26的字母出现的位置集合分别是 A1,B1,A2,B2,....., 我们再能找到一个排列p[] 使得 A[i] = B[p[i]] ,那么就可以成功映射了. 显然集合可以直接hash, ...

  8. [LeetCode] Isomorphic Strings - 字符串操作:数组计数字符个数问题

    题目概述: Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the ...

  9. C#LeetCode刷题之#205-同构字符串(Isomorphic Strings)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3770 访问. 给定两个字符串 s 和 t,判断它们是否是同构的. ...

最新文章

  1. Microbiome:首个地球微生物“社会关系”网络在浙大绘制!
  2. iOS 开发 OC编程 字典和集合 排序方法
  3. 测试字符串读取类: TStringReader
  4. 【React、Vue 、 Angular 共分天下,2018首将会是谁?】
  5. 09_EGIT插件的安装,Eclipse中克隆(clone),commit,push,pull操作演示
  6. 比较常用的10个markdown标签
  7. 11 个重要的数据库设计规则
  8. Apache Ignite本机持久性,简要概述
  9. javaweb 学习资源
  10. 计算机技术在农机上的应用,计算机视觉技术在农机自动化上的应用与优势分析.pdf...
  11. 电脑连接virtualbox虚拟机的方法
  12. 在几何画板中如何制作圆柱的侧面展开动画_几何画板制作圆柱体的形成动画演示方法...
  13. 13 . 外部中断实验
  14. 在Windows10操作系统中任务栏的网络图标消失不见了该怎么办呢
  15. 什么是JavaBean、bean? 什么是POJO、PO、DTO、VO、BO ? 什么是EJB、EntityBean?
  16. JUC第六讲:ThreadLocal/InheritableThreadLocal详解/TTL-MDC日志上下文实践
  17. 基于同步坐标变换的谐波电流检测
  18. 与EEG信号的相关的基础知识以及运动想象信号的生理活动
  19. C++:实现量化GSR模型测试实例
  20. 算术优化算法AOA(学习笔记_10)

热门文章

  1. 【案例练习】13—41个网页设计效果的代码生成器工具
  2. 读理工科研究生的心态
  3. 计算机毕设凑不够字数,撰写毕业论文字数不够要怎样去增加?
  4. php和android和mysql_如何使用JSON连接Android和PHP Mysql数据库
  5. vscode Couldn‘t start client Rust Language Server
  6. 关于根号p是无理数的另类证明
  7. 智能车|直流电机、编码器与驱动器
  8. selenium自动化之PO模型
  9. 网络文件存储系统(三)fastdfs分布式文件系统实战
  10. linux升级gfortran版本,Ubuntu18.04使用配置及gfortran版本的切换