- 浏览: 137487 次
文章分类
- 全部博客 (189)
- Tree (14)
- Dynamic Programming (34)
- Array (20)
- Search (1)
- Hash (12)
- Backtracking (22)
- Divide and Conque (8)
- Greedy (6)
- Stack (12)
- software (0)
- List (7)
- Math (22)
- Two pointers (16)
- String (20)
- Linux (1)
- Sliding Window (4)
- Finite State Machine (1)
- Breadth-first Search (7)
- Graph (4)
- DFS (6)
- BFS (3)
- Sort (9)
- 基础概念 (2)
- 沟通表达 (0)
- Heap (2)
- Binary Search (15)
- 小结 (1)
- Bit Manipulation (8)
- Union Find (4)
- Topological Sort (1)
- PriorityQueue (1)
- Design Pattern (1)
- Design (1)
- Iterator (1)
- Queue (1)
最新评论
-
likesky3:
看了数据结构书得知并不是迭代和递归的区别,yb君的写法的效果是 ...
Leetcode - Graph Valid Tree -
likesky3:
迭代和递归的区别吧~
Leetcode - Graph Valid Tree -
qb_2008:
还有一种find写法:int find(int p) { i ...
Leetcode - Graph Valid Tree -
qb_2008:
要看懂这些技巧的代码确实比较困难。我是这么看懂的:1. 明白这 ...
Leetcode - Single Num II -
qb_2008:
public int singleNumber2(int[] ...
Leetcode - Single Num II
[分析]
思路1:维护两个哈希表,char[] map, boolean[] used, 长度均为256,map[charS] = charT, 表示将字符charS 映射为charT, used[charT]==true 表示charT已经被某个字符映射过了。同步遍历字符串s & t,记两者当前的字符分别为charS, charT, 若charS是新字符,且charT没有被使用,则我们可将其同charT建立映射关系,否则说明有两个不同的字符试图映射到同一个字符上,不符合要求;若charS已被建立映射关系,则检查charT是否和charS的映射字符相等,不相等不符合题目要求的“All occurrences of a character must be replaced with another character ”。
思路2:参考https://leetcode.com/discuss/33854/my-6-lines-solution,又是一个怎巧妙了得~ 这个思路也是用两个哈希表,不同于思路1直接将s中的字符映射到t中字符,它是将s 和 t中的字符同时映射到下标上,因为若个字符若存在映射关系,则必然是出现在相同的下标位置,实现中由于初始值为0,建立映射时使用 i + 1,以区分未映射状态和映射到下标为0的状态。
思路1:维护两个哈希表,char[] map, boolean[] used, 长度均为256,map[charS] = charT, 表示将字符charS 映射为charT, used[charT]==true 表示charT已经被某个字符映射过了。同步遍历字符串s & t,记两者当前的字符分别为charS, charT, 若charS是新字符,且charT没有被使用,则我们可将其同charT建立映射关系,否则说明有两个不同的字符试图映射到同一个字符上,不符合要求;若charS已被建立映射关系,则检查charT是否和charS的映射字符相等,不相等不符合题目要求的“All occurrences of a character must be replaced with another character ”。
思路2:参考https://leetcode.com/discuss/33854/my-6-lines-solution,又是一个怎巧妙了得~ 这个思路也是用两个哈希表,不同于思路1直接将s中的字符映射到t中字符,它是将s 和 t中的字符同时映射到下标上,因为若个字符若存在映射关系,则必然是出现在相同的下标位置,实现中由于初始值为0,建立映射时使用 i + 1,以区分未映射状态和映射到下标为0的状态。
public class Solution { // Method 2 https://leetcode.com/discuss/33854/my-6-lines-solution public boolean isIsomorphic(String s, String t) { int[] map1 = new int[256]; int[] map2 = new int[256]; for (int i = 0; i < s.length(); i++) { if (map1[s.charAt(i)] != map2[t.charAt(i)]) return false; map1[s.charAt(i)] = i + 1; map2[t.charAt(i)] = i + 1; } return true; } // Method 1 public boolean isIsomorphic1(String s, String t) { if (s == null || t == null) return false; char[] map = new char[256]; boolean[] used = new boolean[256]; for (int i = 0; i < s.length(); i++) { char charS = s.charAt(i); char charT = t.charAt(i); if (map[charS] == 0) { if (used[charT]) return false; // No two characters may map to the same character map[charS] = charT; used[charT] = true; } else if (map[charS] != charT){ return false; // All occurrences of a character must be replaced with another character } } return true; } }
发表评论
-
Leetcode - Integer to English Words
2015-09-04 20:53 1104[分析] 这题通过率之所以非常低是因为有很多corner ca ... -
Leetcode - LRU Cache
2015-09-03 18:31 542[分析] 自己使用HashMap + LinkedList/A ... -
Leetcode - Read N Characters Given Read4 II - Call Multiple Times
2015-08-28 09:00 852The API: int read4(char *buf) r ... -
Leetcode - Read N Characters Given Read4
2015-08-27 20:56 691The API: int read4(char *buf) r ... -
Leetcode - One Edit Distance
2015-08-27 20:26 541[分析] 两字符串相同或者长度差异大于等于2都不符合要求,只需 ... -
Leetcode - Max Points on a Line
2015-08-23 15:30 722[分析] 两条直线若包含一个公共点且斜率相同,则为同一条直线。 ... -
Leetcode - Fraction to Recurring Decimal
2015-08-23 10:05 468[分析] 处理int型整数运算时,为避免溢出,省事的做法就是内 ... -
Leetcode - Palindrome Permutation
2015-08-22 16:24 1187[分析] 思路2让我大开眼界,顺便学习下BitSet~ [re ... -
Leetcode - Group Shifted String
2015-08-22 16:20 1726Given a string, we can "sh ... -
Leetcode - Strobogrammatic Number
2015-08-22 10:48 1092A strobogrammatic number is a n ... -
Leetcode - Two Sum III - Data Structure Design
2015-08-21 10:30 695[分析] find的version1 版本注意num2Occu ... -
Leetcode - Longest Consecutive Sequence
2015-08-20 21:20 487[分析] base version说几句: 数组题一定要考虑重 ... -
Leetcode - Contains Duplicate II
2015-08-18 07:57 563Given an array of integers and ... -
Leetcode - Shortest Word Distance II
2015-08-18 07:25 1363This is a follow up of Shortest ... -
Leetcode - Repeated DNA Sequences
2015-08-17 13:43 416All DNA is composed of a series ... -
Leetcode - Two Sum
2015-07-20 10:14 354Given an array of integers, fin ... -
Leetcode - Text Justification
2015-06-22 18:29 384Given an array of words and a l ... -
Leetcode - Valid Number
2015-06-21 10:42 657Validate if a given string is n ... -
Leetcode - Substring with Contentaion of All Words
2015-06-18 10:01 511You are given a string, s, and ... -
Leetcode - Simplify Path
2015-06-17 21:58 426Given an absolute path for a fi ...
相关推荐
python python_leetcode题解之205_Isomorphic_Strings.py
标题 "LeetCode209 - Isomorphic Strings" 涉及到的是一个计算机科学与编程相关的算法问题,主要探讨字符串的映射关系。在描述中,“映射字符串”这一概念指出我们要研究的是如何通过一种映射规则来比较两个字符串...
Strings-| | | 217.包含重复的-| | | 219.包含重复的II-| | | 242.有效字谜-| | | 268.缺少编号-| | | 344.反向字符串-| | | 345.一个字符串的反向元音-| | | 349.两个数组的交集-| | | 374.猜测数字更高或更低-| | ...
# [LeetCode](https://leetcode.com/problemset/algorithms/) ![Language](https://img.shields.io/badge/language-Python%20%2F%20C++%2011-orange.svg) [![License]...
LeetCode 205的题目是“同构字符串”(Isomorphic Strings),要求判断两个字符串是否是同构的。如果字符串s可以通过字符替换得到字符串t,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时...
本题解将深入探讨Python解冑LeetCode第205题——"同构字符串"(Isomorphic Strings)。 同构字符串是指两个字符串s和t,它们之间存在一个一对一的映射关系,即每个字符在s中都有一个特定的字符对应t中的另一个字符...
从标题和描述中可以看到,本文主要关注于LeetCode原题的总结,涵盖了162个题目,包括Find Peak Element、Isomorphic Strings、Group Shifted Strings等,这些题目都是Google Onsite面经中的常见题目。 下面将对这些...
4 Isomorphic Strings 25 5 Word Ladder 27 6 Word Ladder II 29 7 Median of Two Sorted Arrays 33 8 Kth Largest Element in an Array 35 9 Wildcard Matching 37 10 Regular Expression Matching in Java 39 11 ...
IsomorphicStrings_lc205 lowestCommonAncestor_lc235 Netease 2018 - 2019 年度网易Android、Java岗算法题目汇总 最大兴趣值(MaxInterest) 数塔问题(BalancedTower) 丰收(Harvest) 牛牛找工作(FindJob) 数对