242. 有效的字母异位词、349. 两个数组的交集、1. 两数之和

47 阅读1分钟

242. 有效的字母异位词

思路

用哈希表的思路解决

代码

class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
            s_result = dict()
            t_result = dict()

            if len(s) != len(t):
                return False
                
            for i in s:
                s_result[i] = s_result.get(i,0) +1
            
            for i in t:
                t_result[i] = t_result.get(i,0) +1

            for key, value in s_result.items():
                t_result[key] = t_result.get(key,0) - value

                if t_result[key] != 0:
                    return False

            return True 

349. 两个数组的交集

思路

利用set的特性解此题

代码

class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:

    nums1 = set(nums1)

    nums2 = set(nums2)

    return list(nums1&nums2)

1. 两数之和

思路

使用一个list来存放我们访问过的元素,然后并使用enumerate记录其在原数组中的索引

代码

class Solution:

def twoSum(self, nums: List[int], target: int) -> List[int]:

    map = list()

    for ids, num in enumerate(nums):

        map.append(num)

        for i in range(ids+1,len(nums)):

            if hash[ids] + nums[i] == target:

            return [ids,i]