# 421
class Solution:
def findMaximumXOR(self, nums: List[int]) -> int:
res, mask = 0, 0
for i in range(31, -1, -1):
mask = mask | (1<<i) #从高位开始的掩码
s = set()
for num in nums:
s.add(num & mask)
tmp = res | (1<<i)
for j in s:
if tmp ^ j in s:
res = tmp
break
return res
# 422
class Solution:
def validWordSquare(self, words: List[str]) -> bool:
for idx, val in enumerate(itertools.zip_longest(*words, fillvalue="")):
if words[idx] != "".join(val): return False
return True
# 423
class Solution:
def originalDigits(self, s: str) -> str:
s = collections.Counter(s)
zero = s['z']
two = s['w']
four = s['u']
five = s['f'] - four
six = s['x']
one = s['o'] - zero - two - four
eight = s['g']
three = s['h'] - eight
seven = s['v'] - five
nine = s['i'] - six - eight - five
res = ''
for idx , value in enumerate([zero, one, two, three, four, five, six, seven, eight, nine]):
res += str(idx) * value
return res
# 424
class Solution:
def characterReplacement(self, s: str, k: int) -> int:
if s is None or len(s) == 0: return 0
res = 0
dic = Counter()
max_len = 0
for i in range(len(s)):
dic[s[i]] += 1
max_len = max(dic[s[i]] , max_len)
if res - max_len < k:
res += 1
else:
dic[s[i-res]] -= 1
return res
# 429
"""
# Definition for a Node.
class Node:
def __init__(self, val=None, children=None):
self.val = val
self.children = children
"""
class Solution:
def levelOrder(self, root: 'Node') -> List[List[int]]:
res = []
def dfs(root , depth):
if not root.val:
return
if len(res) <= depth:
res.append([])
res[depth].append(root.val)
for child in root.children:
dfs(child , depth + 1)
dfs(root , 0)
return res
你们爷爷奶奶关注的博主更新了~~~