目录
1 介绍
本博客用来记录代码随想录leetcode200题中哈希表部分的题目。
2 训练
题目1:242. 有效的字母异位词
C++代码如下,
class Solution {
public:
bool isAnagram(string s, string t) {
vector<int> cnt1(26, 0), cnt2(26,0);
for (char c : s) cnt1[c-'a']++;
for (char c : t) cnt2[c-'a']++;
for (int i = 0; i < 26; ++i) {
if (cnt1[i] != cnt2[i]) return false;
}
return true;
}
};
python3代码如下,
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
cnt1 = [0] * 26
cnt2 = [0] * 26
for c in s:
cnt1[ord(c)-ord('a')] += 1
for c in t:
cnt2[ord(c)-ord('a')] += 1
for i in range(26):
if cnt1[i] != cnt2[i]:
return False
return True
题目2:349. 两个数组的交集
C++代码如下,
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_map<int,bool> visited1;
for (auto x : nums1) visited1[x] = true;
vector<int> res;
unordered_map<int,bool> visited2;
for (auto x : nums2) {
if (visited1[x] == true) {
if (visited2[x] == false) {
res.emplace_back(x);
visited2[x] = true;
}
}
}
return res;
}
};
python3代码如下,
class Solution:
def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
vis1 = collections.defaultdict(bool)
for x in nums1:
vis1[x] = True
res = []
vis2 = collections.defaultdict(bool)
for x in nums2:
if vis1[x]:
if vis2[x] == False:
res.append(x)
vis2[x] = True
return res
3 参考
代码随想录官网