leetcode——Isomorphic Strings
来源:互联网 发布:java图片上传跨域请求 编辑:程序博客网 时间:2024/06/14 01:02
题目:
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.
For example,
Given "egg", "add", return true.
Given "foo", "bar", return false.
Given "paper", "title", return true.
方法一:
为两个字符串建立hash表,hash[ch]表示ch上一次出现的位置,比较两个字符串对应的字符上次出现的位置是否一样
class Solution {public: bool isIsomorphic(string s, string t) { if (s.length() != t.length()) { return false; } int last_appear_s[256], last_appear_t[256]; memset(last_appear_s, -1, 256 * sizeof(int)); memset(last_appear_t, -1, 256 * sizeof(int)); bool is_ok = true; int length = s.length(); //每次比较当前字符上次出现的位置 for (int i = 0; i < length; ++i) { if (last_appear_s[s[i]] != last_appear_t[t[i]]) { is_ok = false; break; } last_appear_s[s[i]] = i; last_appear_t[t[i]] = i; } return is_ok; }};
方法二:
遍历字符串,建立起两个字符串字符的对应关系,这种对应关系可以用整数s[i] * 256 + t[i]唯一表示,后面遍历的时候比较映射值有没有变化即可。
class Solution {public: bool isIsomorphic(string s, string t) { if (s.length() != t.length()) { return false; } int diff1[256], diff2[256]; memset(diff1, -1, 256 * sizeof(int));//初始化为相同的值,保证第一次比较的时候相等 memset(diff2, -1, 256 * sizeof(int)); bool is_ok = true; int length = s.length(); //每次比较当前字符上次出现的位置 for (int i = 0; i < length; ++i) { if (diff2[t[i]] != diff1[s[i]]) { is_ok = false; break; } diff2[t[i]] = diff1[s[i]] = s[i] << 8 + t[i]; } return is_ok; }};
0 0
- LeetCode—Isomorphic Strings
- Isomorphic Strings —— Leetcode
- LeetCode——Isomorphic Strings
- leetcode——Isomorphic Strings
- LeetCode OJ——Isomorphic Strings
- LeetCode205—Isomorphic Strings
- leetcode——205——Isomorphic Strings
- Leetcode205——Isomorphic Strings
- Algorithms—205.Isomorphic Strings
- LeetCode 205 - Isomorphic Strings
- [LeetCode] Isomorphic Strings
- Isomorphic Strings Leetcode JAVA
- [LeetCode] Isomorphic Strings
- [LeetCode 205]Isomorphic Strings
- LeetCode 205-Isomorphic Strings
- leetcode Isomorphic Strings
- leetcode(c++) Isomorphic Strings
- leetcode--Isomorphic Strings
- 构造方法中super()的作用
- Codeforces 689C Mike and Chocolate Thieves (二分)
- Qt学习笔记——QTableWidget使用问题
- 异常处理基础(C#参考)
- 四大内部类
- leetcode——Isomorphic Strings
- 领域建模有很多种方法,对于同样的问题域使用不同的建模手段得到的模型可能也不尽相同。于是我经常听到这样一个问题:怎么才能保证建模的正确性?
- 用NSJSONSerialization解析NSURLSession中的json数据
- 我的linux命令笔记
- 网络状态监测
- 解决js中onkeydown事件键盘控制div移动鼠标卡顿
- nyoj 276 比较字母大小
- 速度追踪--VelocityTracker
- android版ape,flac,wav,mp3播放器