马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
【算法系列-哈希表】有效的字母异位词
欢迎来到【算法系列】第三弹 哈希表,接下来我们将围绕哈希表这范例的算法题举行分析与训练!一起加油吧!!( •̀ ω •́ )✧✨
1. 有效的字母异位词(LeetCode 242)
【标题链接】 有效的字母异位词 LeetCode 242
1.1 思绪分析
构建哈希表来办理标题
界说一个数组,数组长度为26,对应26个字母 这个数组的索引下标 由 字符串中的字符 - ‘a’ 转化而来('a’的ASCII码值为97),数组元素代表着这个字母在字符串中的词频
1.2 解题过程
对 s 字符串举行遍历,每遍历到 s 字符串中的新字符,数组对应位置下的元素值 + 1;
对 t 字符串举行遍历,每遍历到 t 字符串中的新字符,数组对应位置下的元素值 - 1;
对数组举行遍历,若遍历到的数组元素 不即是 0,表现s字符串与t字符串之间存在数目不等的字母,返回false ;
上述循环竣事,则返回true
1.3 代码示例
- class Solution {
-
-
- public boolean isAnagram(String s, String t) {
-
-
- int[] arr = new int[26];
- for (int i = 0;i < s.length();i++) {
-
-
- arr[s.charAt(i) - 'a']++;
- }
- for (int i = 0;i < t.length();i++) {
-
-
- arr[t.charAt(i) - 'a']--;
- }
- for (int i = 0;i < arr.length;i++) {
-
-
- if (arr[i] != 0) {
-
-
- return false;
- }
- }
- return true;
- }
- }
复制代码 把握相识题思绪后,提供以下几道范例相似的题用来训练
2. 赎金信(LeetCode 383)
【标题链接】 赎金信 LeetCode 383
2.1 思绪分析
思绪与上一题类似,只是末了在判定的时间必要清撤消词频小于0的环境(由于magazine中大概存在ransomNote没有的字符)
2.2 代码示例
- class Solution {
-
-
- public boolean canConstruct(String ransomNote, String magazine) {
-
-
-
- int[] arr = new int[26];
- for (int i
复制代码 |