5960. 将标题首字母大写
这是我写的:执行用时: 36 ms,内存消耗: 15.1 MB
class Solution:
def capitalizeTitle(self, title: str) -> str:
titles = title.split(' ')
for i in range(len(titles)):
t = titles[i]
if len(t) <= 2:
titles[i] = t.lower()
else:
titles[i] = t.capitalize()
return " ".join(titles)
一行代码:执行用时: 36 ms,内存消耗: 15.1 MB
class Solution:
def checkString(self, s: str) -> bool:
return ' '.join([w.capitalize() if len(w) > 2 else w.lower() for w in title.split()])
5961. 链表最大孪生和
这是我写的:执行用时: 764 ms,内存消耗: 55.9 MB
class Solution:
def pairSum(self, head: Optional[ListNode]) -> int:
arr = []
while head:
arr.append(head.val)
head = head.next
n = len(arr)
ar = arr[:n//2]
for i in range(n // 2):
ar[i] += arr[n-i-1]
return max(ar)
5962. 连接两字母单词得到的最长回文串
我写的:执行用时: 264 ms,内存消耗: 32 MB
class Solution:
def longestPalindrome(self, words: List[str]) -> int:
flag = False
res = 0
dict = {}
for word in words:
nw = word[1] + word[0]
if nw in dict and dict[nw] > 0:
dict[nw] -= 1
res += 2
else:
if word in dict:
dict[word] += 1
else:
dict[word] = 1
for key in dict.keys():
if dict[key] == 1 and key[0] == key[1]:
res += 1
break
return res*2
5931. 用邮票贴满网格图
大佬写的:执行用时: 1144 ms,内存消耗: 47.2 MB
class Solution:
def possibleToStamp(self, grid: List[List[int]], stampHeight: int, stampWidth: int) -> bool:
m, n = len(grid), len(grid[0])
sum = [[0] * (n + 1) for _ in range(m + 1)]
diff = [[0] * (n + 1) for _ in range(m + 1)]
for i, row in enumerate(grid):
for j, v in enumerate(row): # grid 的二维前缀和
sum[i + 1][j + 1] = sum[i + 1][j] + sum[i][j + 1] - sum[i][j] + v
for i, row in enumerate(grid):
for j, v in enumerate(row):
if v == 0:
x, y = i + stampHeight, j + stampWidth # 注意这是矩形右下角横纵坐标都 +1 后的位置
if x <= m and y <= n and sum[x][y] - sum[x][j] - sum[i][y] + sum[i][j] == 0:
diff[i][j] += 1
diff[i][y] -= 1
diff[x][j] -= 1
diff[x][y] += 1 # 更新二维差分
# 还原二维差分矩阵对应的计数矩阵,这里用滚动数组实现
cnt, pre = [0] * (n + 1), [0] * (n + 1)
for i, row in enumerate(grid):
for j, v in enumerate(row):
cnt[j + 1] = cnt[j] + pre[j + 1] - pre[j] + diff[i][j]
if cnt[j + 1] == 0 and v == 0:
return False
cnt, pre = pre, cnt
return True