链接: 6249. 分割圆的最少切割次数

class Solution:def numberOfCuts(self, n: int) -> int:if n == 1:return 0if n &1:return nreturn n//2
链接: 66277. 行和列中一和零的差值

按题意模拟即可。
class Solution:def onesMinusZeros(self, grid: List[List[int]]) -> List[List[int]]:m,n = len(grid),len(grid[0])cols = [0]*nrows = [sum(r) for r in grid]for i in range(m):for j in range(n):cols[j] += grid[i][j]diff = [[0]*n for _ in range(m)]for i in range(m):for j in range(n):diff[i][j] = rows[i]*2-m + cols[j]*2-nreturn diff
链接: 6250. 商店的最少代价

class Solution:def bestClosingTime(self, customers: str) -> int:n = len(customers)Y = customers.count('Y')N = n - Ya =b=0ans = mn = inffor i in range(n):c = b+Y-aif c < mn:ans = i mn = ca+=customers[i]=='Y' b+=customers[i]=='N'c = b+Y-aif c < mn:ans = nmn = c return ans
链接: 6251. 统计回文子序列数目

MOD = 10**9+7
class Solution:def countPalindromes(self, s: str) -> int:s = list(map(int,s))suf1 = [0]*10suf2 = [0]*100for v in s:for d,c in enumerate(suf1):suf2[d*10+v] += csuf1[v] += 1pre1 = [0]*10pre2 = [0]*100ans = 0for v in s:suf1[v] -= 1for d,c in enumerate(suf1):suf2[v*10+d] -= cfor i in range(10):for j in range(10):ans += suf2[i*10+j] * pre2[j*10+i]ans %= MODfor d,c in enumerate(pre1):pre2[d*10+v] += cpre1[v]+=1return ans
上一篇:关于孩子童年的句子有哪些?