1.第一题:
这道题我的方法挺笨的,先是用一个列表将所有的字母和数字转换为大写存储起来,再利用两个指针,分别指向列表开头和结尾,依次判断是否相等,若不想等则直接返回False,若到最后则返回True,代码如下:
class Solution:
def isPalindrome(self, s: str) -> bool:
if s==" ":
return True
string=[]
for i in s:
if i.isdigit() or i.isalpha():
string.append(i.upper())
a=0
b=len(string)-1
while a<=b:
if string[a]!=string[b]:
return False
else:
a+=1
b-=1
return True
第二题:
这道题的思路是先对数组进行排序,再对数组进行遍历,若nums[i]!=nums[i+1],则说明nums[i]就是只出现了一次的数字,否则的话i=i+2,跳到下一个待判断的数字,若到最后则返回最后一个数字。代码如下:
class Solution:
def singleNumber(self, nums: List[int]) -> int:
nums.sort()
i=0
while i<len(nums)-1:
if nums[i]!=nums[i+1]:
return nums[i]
else:
i=i+2
return nums[i]