leetcode 每日打卡
附上kuangbin大佬话激励自己:
人一我百,人十我万,追逐青春的梦想,怀着自信的心,永不放弃!
2020.2.13
记录下来自己做题时得思路,并不一定是最优解
面试题58 - II. 左旋转字符串
class Solution:
def reverseLeftWords(self, s: str, n: int) -> str:
return s[n:len(s)]+s[:n]
1108. IP 地址无效化
解法一
class Solution:
def defangIPaddr(self, address: str) -> str:
return address.replace('.','[.]')
解法二
class Solution:
def defangIPaddr(self, address: str) -> str:
ans = ''
for i in address:
if i == '.':
ans+='[.]'
else:
ans += i
return ans
709. 转换成小写字母
内置方法
class Solution:
def toLowerCase(self, str: str) -> str:
return str.lower()
class Solution:
def toLowerCase(self, str: str) -> str:
ans = ""
for i in str:
if i >= 'A' and i <= 'Z':
ans += chr(ord(i) + 32)
else:
ans += i
return ans
面试题15. 二进制中1的个数
class Solution:
def hammingWeight(self, n: int) -> int:
ans = 0
while n > 0:
ans += n & 1
n = n >> 1
return ans
面试题 16.01. 交换数字
class Solution:
def swapNumbers(self, numbers: List[int]) -> List[int]:
# 如何利用位运算交换两个数
# swqp(a,b): 执行以下三步
# a = a ^ b ; b = a ^ b; a = a ^ b;
numbers[0] = numbers[0] ^ numbers[1]
numbers[1] = numbers[0] ^ numbers[1]
numbers[0] = numbers[0] ^ numbers[1]
return numbers