[LeetCode - Python]344.反转字符串(Easy);345. 反转字符串中的元音字母(Easy);977. 有序数组的平方(Easy)

1.题目

344.反转字符串(Easy)[LeetCode - Python]344.反转字符串(Easy);345. 反转字符串中的元音字母(Easy);977. 有序数组的平方(Easy)_第1张图片

1.代码

class Solution:
    def reverseString(self, s: List[str]) -> None:
        """
        Do not return anything, modify s in-place instead.
        """
        # 双指针
        left,right = 0, len(s)-1
        while left < right:
            temp = s[left]
            s[left] = s[right]
            s[right] = temp
            left+=1
            right-=1
        

2.题目

345.反转字符串中的元音字母(Easy)
[LeetCode - Python]344.反转字符串(Easy);345. 反转字符串中的元音字母(Easy);977. 有序数组的平方(Easy)_第2张图片

2.代码

class Solution:
    def reverseVowels(self, s: str) -> str:
        # 双指针操作
        # 本题要求返回字符串
        left,right = 0 ,len(s)-1
        ret = list (s)
        YuanYin = ['a','e','i','o','u','A','E','I','O','U']
        while left < right :
            if s[left]not in YuanYin :
                left+=1
                continue
            if s[right]not in YuanYin:
                right-=1
                continue
            if s[left].lower() in YuanYin and s[right].lower() in YuanYin :
                ret[left] = s[right]
                ret[right] = s[left]
                left+=1
                right-=1
        return ''.join(ret)            
        # 字符串不能直接操作,需要:
        # 1.字符串转换为list
        # 2.''.join(s) ,将 list 连接为str。

在这里插入图片描述

3.题目

977. 有序数组的平方(Easy)
[LeetCode - Python]344.反转字符串(Easy);345. 反转字符串中的元音字母(Easy);977. 有序数组的平方(Easy)_第3张图片

3.代码

class Solution:
    def sortedSquares(self, nums: List[int]) -> List[int]:
        # 暴力法
        ret = []
        for i in nums:
            ret.append(i**2)        
        ret.sort()
        return ret

[LeetCode - Python]344.反转字符串(Easy);345. 反转字符串中的元音字母(Easy);977. 有序数组的平方(Easy)_第4张图片

class Solution:
    def sortedSquares(self, nums: List[int]) -> List[int]:
        # 双指针法
        # 由于有0存在,因此需要不断向里边添加最大的数
        left ,right = 0 ,len(nums)-1    
        ret = [0 for _ in range(right+1)]
        i = right
        while left <= right :
            Le = nums[left]**2 
            Ri =  nums[right]**2
            if  Le > Ri:
                ret[i] = Le
                left+=1
            else :
                ret[i] = Ri
                right-=1
            i-= 1
        return ret  

[LeetCode - Python]344.反转字符串(Easy);345. 反转字符串中的元音字母(Easy);977. 有序数组的平方(Easy)_第5张图片

你可能感兴趣的:(leetcode,python,算法)