有效的字母异位词

有效的字母异位词

1. 题目描述

提示
题目链接:https://leetcode.cn/problems/valid-anagram/description/

2. 解题思路

核心总结

  • 思路进化:从“两个 Map 对比”优化为“一个数组动态抵消”。遍历 s 时在该字符索引处 +1,遍历 t-1。若最终所有位为 0 则匹配。

💡 易错点

利用小写字母 ASCII 码连续的特点,int[26] 数组比 HashMap 更快更省空间。

3. 代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class Solution {

public boolean isAnagram(String s, String t) {

if(s.length() != t.length()){

return false;

}

int[] record = new int[26];

for(char c : s.toCharArray()){

record[c - 'a']++;

}

for(char c : t.toCharArray()){

record[c - 'a']--;

if(record[c - 'a'] < 0){return false;}

}

return true;

}

}

4. 复杂度分析

  • 时间复杂度:$O(n)$
  • 空间复杂度:$O(1)$

5. 总结与反思


本文已被观测了
« 上一篇 主页 下一篇 »