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)-1
while left < right:
temp = s[left]
s[left] = s[right]
s[right] = temp
left+=1
right-=1
2.题目
345.反转字符串中的元音字母(Easy)
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)
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 = 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