242.有效的字母异位词
题目链接:242. 有效的字母异位词
bool isAnagram(char* s, char* t) {
int hash[26];
memset(hash, 0, 26);
if(strlen(s) != strlen(t)) return false;
for(int i = 0; i < strlen(s); i++){
hash[s[i] - 'a']++;
hash[t[i] - 'a']--;
}
for(int i = 0; i < 26; i++){
if(hash[i] != 0)
return false;
}
return true;
}
// 用数组计数实现!
// set,map不太理解,而且要用c++,后续待学!
349.两个数组的交集
题目链接:349. 两个数组的交集
文章讲解:代码随想录 (programmercarl.com)
// 方法二: set
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
int hash[1010] = {0};
unordered_set<int> result; // unordered_set 是为了给结果去重!
unordered_set<int> num_set;
for(int num : nums1){
num_set.insert(num);
}
for(int num : nums2){
if(num_set.find(num) != num_set.end()){ // 索引不等于末尾迭代器end,表示在num_set中找到了
result.insert(num); // add和push_back不行
}
}
return vector<int>(result.begin(), result.end());
}
};