0
点赞
收藏
分享

微信扫一扫

计算机网络chapter1——家庭作业

搬砖的小木匠 2024-05-06 阅读 8

目录

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 参考

代码随想录官网

举报

相关推荐

0 条评论