[LeetCode - Python]344.反转字符串(Easy);345. 反转字符串中的元音字母(Easy);977. 有序数组的平方(Easy)
1.题目
344.反转字符串(Easy)
1.代码
class Solution:def reverseString(self, s: List[str]) -> None:"""Do not return anything, modify s in-place instead."""# 双指针left,right = 0, len(s)-1while left < right:temp = s[left]s[left] = s[right]s[right] = templeft+=1right-=1
2.题目
345.反转字符串中的元音字母(Easy)
2.代码
class Solution:def reverseVowels(self, s: str) -> str:# 双指针操作# 本题要求返回字符串left,right = 0 ,len(s)-1ret = list (s)YuanYin = ['a','e','i','o','u','A','E','I','O','U']while left < right :if s[left]not in YuanYin :left+=1continueif s[right]not in YuanYin:right-=1continueif s[left].lower() in YuanYin and s[right].lower() in YuanYin :ret[left] = s[right]ret[right] = s[left]left+=1right-=1return ''.join(ret) # 字符串不能直接操作,需要:# 1.字符串转换为list# 2.''.join(s) ,将 list 连接为str。
3.题目
977. 有序数组的平方(Easy)
3.代码
class Solution:def sortedSquares(self, nums: List[int]) -> List[int]:# 暴力法ret = []for i in nums:ret.append(i**2) ret.sort()return ret
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 = rightwhile left <= right :Le = nums[left]**2 Ri = nums[right]**2if Le > Ri:ret[i] = Leleft+=1else :ret[i] = Riright-=1i-= 1return ret