博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]Isomorphic Strings
阅读量:2236 次
发布时间:2019-05-09

本文共 918 字,大约阅读时间需要 3 分钟。

解题思路:
1,哈希表,字符串s 和 t 一一对应,令字符串s的字符为 key,遍历s,如果s不存在于hash表中,插入,并领其value为t对应位置的字符;如果s中某字符存在于hash表中,并且其value与t中对应位置的字符不同,则返回false,否则返回true;
2,上述过程要有个逆向的过程,即另建一个hash表,t的字符作为key,s的字符作为value,执行上述相同的逻辑
边界条件:s 和 t 的长度不等
前条件:创建hash表
不变式:遍历s中的字符c,在hash表中寻找c,如不存在,则插入;若存在,在比较value与t[i];

结束条件:发现hash表中存在字符c,其hash值与t中对应的字符不同,返回false;否则返回true 

class Solution {public:    bool isIsomorphic(string s, string t) {        if (s.length() != t.length()){            return false;        }        unordered_map
hashT; unordered_map
hashTReverse; for (int i = 0; i < s.length(); ++i){ if (hashT.find(s[i]) != hashT.end() && hashT[s[i]] != t[i]) return false; if (hashTReverse.find(t[i]) != hashTReverse.end() && hashTReverse[t[i]] != s[i]) return false; hashT[s[i]] = t[i]; hashTReverse[t[i]] = s[i]; } return true; }};

转载地址:http://bjpbb.baihongyu.com/

你可能感兴趣的文章
【托业】【新东方全真模拟】01~02-----P5~6
查看>>
【托业】【新东方全真模拟】03~04-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST05~06-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST09~10-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST07~08-----P5~6
查看>>
solver及其配置
查看>>
JAVA多线程之volatile 与 synchronized 的比较
查看>>
Java集合框架知识梳理
查看>>
笔试题(一)—— java基础
查看>>
Redis学习笔记(三)—— 使用redis客户端连接windows和linux下的redis并解决无法连接redis的问题
查看>>
Intellij IDEA使用(一)—— 安装Intellij IDEA(ideaIU-2017.2.3)并完成Intellij IDEA的简单配置
查看>>
Intellij IDEA使用(二)—— 在Intellij IDEA中配置JDK(SDK)
查看>>
Intellij IDEA使用(三)——在Intellij IDEA中配置Tomcat服务器
查看>>
Intellij IDEA使用(四)—— 使用Intellij IDEA创建静态的web(HTML)项目
查看>>
Intellij IDEA使用(五)—— Intellij IDEA在使用中的一些其他常用功能或常用配置收集
查看>>
Intellij IDEA使用(六)—— 使用Intellij IDEA创建Java项目并配置jar包
查看>>
Eclipse使用(十)—— 使用Eclipse创建简单的Maven Java项目
查看>>
Eclipse使用(十一)—— 使用Eclipse创建简单的Maven JavaWeb项目
查看>>
Intellij IDEA使用(十三)—— 在Intellij IDEA中配置Maven
查看>>
面试题 —— 关于main方法的十个面试题
查看>>