力扣刷题记录——1002. 查找共用字符、905. 按奇偶排序数组、 977. 有序数组的平方

本专栏主要记录力扣的刷题记录,备战蓝桥杯,供复盘和优化算法使用,也希望给大家带来帮助,博主是算法小白,希望各位大佬不要见笑,今天要分享的是——《力扣刷题记录——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 += 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

猜你喜欢

转载自blog.csdn.net/weixin_63866037/article/details/128838643