当前位置:实例文章 » 其他实例» [文章]代码随想录day5 | 242.有效的字母异位词 349. 两个数组的交集 202.快乐数

代码随想录day5 | 242.有效的字母异位词 349. 两个数组的交集 202.快乐数

发布人:shili8 发布时间:2025-01-11 03:47 阅读次数:0

**代码随想录 Day5**

###1.有效的字母异位词 (242)

#### 题目描述:

给定一个字符串 `s` 和一个非空字符串 `p`,找到 `s` 中所有是 `p` 的字母异位词的子串。

#### 示例:

* 输入:`s = "rabbbit", p = "rabbit"`
输出:`["abbit","abbot","rabbi"]`

#### 思路:

1. 首先,我们需要计算出 `p` 中每个字符出现的次数,并将这些信息存储在一个哈希表中。
2. 然后,对于 `s` 中的每个子串,我们可以使用哈希表来检查该子串是否是 `p` 的字母异位词。

####代码:

def findAnagrams(s, p):
 if len(s) < len(p):
 return []
 p_count = {}
 s_count = {}
 for char in p:
 p_count[char] = p_count.get(char,0) +1 for i in range(len(s)):
 s_count[s[i]] = s_count.get(s[i],0) +1 if i >= len(p):
 s_count[s[i - len(p)]] -=1 if s_count == p_count:
 return [s[i - len(p) +1:i +1]]
 return []

# 测试print(findAnagrams("rabbbit", "rabbit")) # Output: ["abbit","abbot","rabbi"]


###2.两个数组的交集 (349)

#### 题目描述:

给定两个整数数组 `nums1` 和 `nums2`,返回它们的交集。

#### 示例:

* 输入:`nums1 = [1,2,2,1]`, `nums2 = [2,2]`
输出:`[2,2]`

#### 思路:

1. 首先,我们需要将两个数组中的元素都存储在一个集合中。
2. 然后,使用集合的交集方法可以得到两个集合的交集。

####代码:

def intersection(nums1, nums2):
 return list(set(nums1) & set(nums2))

# 测试print(intersection([1,2,2,1], [2,2])) # Output: [2,2]


###3. 快乐数 (202)

#### 题目描述:

给定一个整数 `n`,返回 `true` 如果它是一个快乐数(每个数字的平方和都是快乐数),否则返回 `false`。

#### 示例:

* 输入:`n =19`
输出:`true`

#### 思路:

1. 首先,我们需要定义一个函数来检查一个数字是否是快乐数。
2. 然后,对于每个数字的平方和,直到达到 `0` 或 `1` 为止,都可以使用这个函数进行检查。

####代码:

def isHappy(n):
 def get_sum(num):
 return sum(int(digit) **2 for digit in str(num))
 seen = set()
 while n !=1 and n not in seen:
 seen.add(n)
 n = get_sum(n)
 return n ==1# 测试print(isHappy(19)) # Output: True


以上是本篇博客的内容,希望对你有所帮助。

其他信息

其他资源

Top