力扣刷题记录——1002. 查找共用字符、905. 按奇偶排序数组、 977. 有序数组的平方
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
本专栏主要记录力扣的刷题记录备战蓝桥杯供复盘和优化算法使用也希望给大家带来帮助博主是算法小白希望各位大佬不要见笑今天要分享的是——《力扣刷题记录——1002. 查找共用字符、905. 按奇偶排序数组、 977. 有序数组的平方》。
目录
1002. 查找共用字符
题目描述
给你一个字符串数组
words
请你找出所有在words
的每个字符串中都出现的共用字符 包括重复字符并以数组形式返回。你可以按 任意顺序 返回答案。示例 1
输入words = ["bella","label","roller"] 输出["e","l","l"]示例 2
输入words = ["cool","lock","cook"] 输出["c","o"]
解题思路
首先通过集合找到列表中元素中所有的重复元素那么这些元素肯定是最终答案现在就是元素出现的次数。只要数每个元素出现的次数最小值即为最终出现的次数。
解题代码
def commonChars(words: list[str]) -> list[str]:
fin_str = ""
word = "abcdefghijklmnopqrstuvwxyz"
for i in range(len(words)):
word = "".join(list(set(word)&set(words[i])))
fin_str += word
for i in word:
result = []
for j in words:
result.append(j.count(i))
fin_str += i*(min(result)-1)
fin_list = [i for i in fin_str]
return fin_list
905. 按奇偶排序数组
题目描述
给你一个整数数组
nums
将nums
中的的所有偶数元素移动到数组的前面后跟所有奇数元素。返回满足此条件的 任一数组 作为答案。
示例 1
输入nums = [3,1,2,4] 输出[2,4,3,1] 解释[4,2,3,1]、[2,4,1,3] 和 [4,2,1,3] 也会被视作正确答案。示例 2
输入nums = [0] 输出[0]
解题思路
遍历列表判断奇偶性用extend融合两个列表返回最终结果就可以了。
解题代码
def sortArrayByParity(nums: list[int]) -> list[int]:
o = []
j = []
for i in nums:
if i %2 == 0:
o.append(i)
else:
j.append(i)
o.extend(j)
return o
977. 有序数组的平方
题目描述
给你一个按 非递减顺序 排序的整数数组
nums
返回 每个数字的平方 组成的新数组要求也按 非递减顺序 排序。示例 1
输入nums = [-4,-1,0,3,10] 输出[0,1,9,16,100] 解释平方后数组变为 [16,1,0,9,100] 排序后数组变为 [0,1,9,16,100]示例 2
输入nums = [-7,-3,2,3,11] 输出[4,9,9,49,121]
解题思路
用列表生成式生成平方列表然后对这个列表进行排序就可以了还是比较简单的。
解题代码
def sortedSquares(nums: list[int]) -> list[int]:
result = [i**2 for i in nums]
result.sort()
return result