leetcode坚持刷题
1、 1812判断国际象棋棋盘中一个格子的颜色
leetcode1812题
根据给出的坐标,判断该棋子是白色还是黑色,如果是黑色就返回False,否则返回True
这道题比较简单,用了不到5分钟就解出来了。
class Solution:
def squareIsWhite(self, coordinates: str) -> bool:
while 'a' <= coordinates[0] <= 'h' and '1' <= coordinates[1] <= '8':
if (ord(coordinates[0])+ord(coordinates[1]))%2==0:#如果对应的元素的值ascii码对应的数值能被2整除,返回False,否则返回True
return False
else:
return True
2、面试题 16.15. 珠玑妙算珠玑妙算
猜中是同样位置对应的数值也相等,伪猜中是对应的数值相等但位置不等,综上所述,所以上面的代码如图所示。
class Solution:
def masterMind(self, solution: str, guess: str) -> List[int]:
a = sum(i==j for i,j in zip(solution,guess))#位置相同且数值相等的个数
b = sum((Counter(solution)&Counter(guess)).values())#solution和guess元素相等的个数
return [a,b-a]
运行效果也没有那么好,期待二刷的时候能有所提升。
3、67 、二进制求和leetcode第67题
class Solution:
def addBinary(self, a: str, b: str) -> str:
return '{b:}'.format(int(a,2)+int(b,2))#将2进制的a、b转化为10进制,将数值相加得到的结果转化为2进制,固定用法
#'{b:}'.format(a)将十进制的数值转化为2进制字符串
4、125. 验证回文串 leetcode第125题
回文串的问题,可以调用python自带的函数str.isalnum函数判断该字符串是否为字母数字字符,如果是的话就将该字符加入到列表中。
class Solution:
def isPalindrome(self, s: str) -> bool:
s = ''.join(filter(str.isalnum,s)).lower()#过滤s中的数字字母字符,如果是的话无空格的加入到s字符串中,并将该字符串转化为小写形式
return s==s[::-1]
5、 168. Excel表列名称168Excel表列名称
class Solution:
def convertToTitle(self, columnNumber: int) -> str:
s = ''
while(columnNumber):
columnNumber -=1
s = chr(columnNumber%26+65)+s
columnNumber = columnNumber//26
return s
继续加油和坚持