题意以及限制条件
-
题目:

-
限制条件:You may assume the string contains only lowercase alphabets.
想到的所有可能解法
-
Ways_1——字符数组排序。
- 时间复杂度——O(nlogn);空间复杂度——O(n)。
-
Ways_2——哈希映射。
- 时间复杂度——O(n);空间复杂度——O(n)。
对应的代码
- Ways_1
class Solution {
public boolean isAnagram(String s, String t) {
char[] ca_s = s.toCharArray();
char[] ca_t = t.toCharArray();
int len_s = ca_s.length;
int len_t = ca_t.length;
if (len_s != len_t) return false;
Arrays.sort(ca_s);
Arrays.sort(ca_t);
return Arrays.equals(ca_s, ca_t);
}
}
- Ways_2
class Solution {
public boolean isAnagram(String s, String t) {
char[] ca_s = s.toCharArray();
char[] ca_t = t.toCharArray();
int len_s = ca_s.length;
int len_t = ca_t.length;
if (len_s != len_t) return false;
char[] alphabet = new char[26];
for (int i = 0; i < len_s; ++i) {
++alphabet[ca_s[i] - 'a'];
--alphabet[ca_t[i] - 'a'];
}
for (char c : alphabet)
if (c != 0) return false;
return true;
}
}
测试样例

本文探讨了LeetCode_242题目的解决方案,包括字符数组排序法(Ways_1)和哈希映射法(Ways_2),并提供了两种方法的代码实现。通过实例展示了如何判断两个字符串是否为异构,同时分析了时间复杂度和空间复杂度。
7717

被折叠的 条评论
为什么被折叠?



