本专栏主要记录力扣的刷题记录,备战蓝桥杯,供复盘和优化算法使用,也希望给大家带来帮助,博主是算法小白,希望各位大佬不要见笑,今天要分享的是——《力扣刷题记录——1002. 查找共用字符、905. 按奇偶排序数组、 977. 有序数组的平方》。
目录
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 += wordfor 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