classSolution:defthreeSumClosest(self, nums: List[int], target:int)->int:
nums.sort()
n=len(nums)
bestNum=nums[0]+nums[1]+nums[2]for i inrange(n-2):
L=i+1
R=n-1while L<R:
minNum=nums[L]+nums[L+1]+nums[i]if target<minNum:ifabs(bestNum-target)>abs(minNum-target):
bestNum=minNum
break
maxNum=nums[R-1]+nums[R]+nums[i]if target>maxNum:ifabs(bestNum-target)>abs(maxNum-target):
bestNum=maxNum
break
tempNum=nums[L]+nums[i]+nums[R]if tempNum==target:return tempNum
ifabs(tempNum-target)<abs(bestNum-target):
bestNum=tempNum
if tempNum>target:
R-=1while(L<R and nums[R]==nums[R+1]):#重复,注意符号
R-=1else:
L+=1while(L<R and nums[L]==nums[L-1]):
L+=1while i<n-2and nums[i]==nums[i+1]:
i+=1return bestNum
有效的括号
classSolution:defisValid(self, s:str)->bool:
hashs={')':'(',']':'[','}':'{'}
stack=[]for i in s:if i notin hashs:
stack.append(i)if i in hashs:if stack and hashs[i]==stack[-1]:
stack.pop()#栈顶元素与字典值一样释放else:returnFalsereturnnot stack