题目1 题解1 class Solution: def validPalindrome(self, s: str) -> bool: l, r = 0, len(s) - 1 while l < r: if s[l] != s[r]: case1, case2 = s[l:r], s[l+1:r+1] # 如果原数组去头,去尾的两个数组有一个为回文,则整体为回文 return case1 == case1[::-1] or case2 == case2[::-1] l, r = l+1, r-1 return True 附上题目链接 题目2 题解2 class Solution: def validMountainArray(self, A: List[int]) -> bool: if len(A) < 3: return False a = A.index(max(A)) if a == 0 or a == len(A) - 1: return False for i in range(a): if A[i] >= A[i+1]: return False for i in range(a,len(A)-1): if A[i] <= A[i+1]: return False return True 附上题目链接 题目3 题解3 class Solution: def isBoomerang(self, points: List[List[int]]) -> bool: # 判断三个点相同 if not(points[0] != points[1] != points[2]): return False # 比较斜率 k1 = (points[1][1]-points[0][1])/(points[1][0]-points[0][0]) if points[1][0]-points[0][0] != 0 else 'non-exist' k2 = (points[2][1]-points[1][1])/(points[2][0]-points[1][0]) if points[2][0]-points[1][0] != 0 else 'non-exist' return k1 != k2